0

クリック:

lstText.ItemClick += (sender, args) =>
{
    Logon(GetString(Resource.String.LogonMessage), sUUID, sUserId, sUserPIN);
};

警告ダイアログ:

private void Logon(string message, string sUUID, string sUserId, string sUserPIN) // 
    {
        RunOnUiThread(() =>
        {
            var uuidFetch = this.GetSystemService(Context.TelephonyService) as Android.Telephony.TelephonyManager;
            var IMEI = uuidFetch.DeviceId;

            var getUserId = LayoutInflater.From(this).Inflate(Resource.Layout.Login, null);
            getUserId.FindViewById<TextView>(Resource.Id.getUserId).Text = sUserId;

            var getPIN = LayoutInflater.From(this).Inflate(Resource.Layout.Login, null);
            getPIN.FindViewById<EditText>(Resource.Id.sUserPin).Text = sUserPIN;

            new AlertDialog.Builder(this)
            .SetTitle(GetString(Resource.String.LogonTitle))
            .SetMessage(message)
            .SetView(getUserId)
            .SetView(getPIN)
            .SetCancelable(true)
            .SetPositiveButton(GetString(Resource.String.LogonOk), (sender, e) =>
            {
                sUUID = IMEI;
                sUserId = "474";
                sUserPIN = getPIN.FindViewById<EditText>(Resource.Id.sUserPin).Text;
                Window.SetSoftInputMode(SoftInput.StateHidden);

                ThreadPool.QueueUserWorkItem(o => Authorize(sUUID, sUserId, sUserPIN));
                SetContentView(Resource.Layout.Splash);
            })
            .SetNegativeButton(GetString(Resource.String.LogonCancel), (sender, e) =>
            {
                Window.SetSoftInputMode(SoftInput.StateHidden);
            })
            .Show();
        });

アラート ダイアログでわかるように、sUserId は静的です (アプリのテストとビルドを行っており、開発の初期段階にあるため)。リストビューには、彼自身の sUserId があります。

私のItem Adapterからの数行:

var sUserId = view.FindViewById<TextView>(Resource.Id.sUserId);
sUserId.Text = item.sUserId != null ? item.sUserId : "";

必要に応じて、さらにコード/情報を提供します。あなたの時間、あなたのアドバイス、そして私の問題を解決するためのヒントをありがとう.

4

1 に答える 1

1

あなたが扱っているの引数には、 sでクリックされた項目の位置だけでなく、とその内容ItemClick Eventなど、多くの便利なものが含まれています。ListViewAdapterView

したがって、ListViewItemビューに が含まれていることがわかっているTextView場合は、ItemClickハンドラーに次のようなコードを記述して、そのコンテンツを抽出できます。

lstText.ItemClick += (sender, args) =>
{
    var userIdTextView = args.View.FindViewById<TextView>(Resource.Id.sUserId);
    var userId = userIdTextView.Text;
}
于 2013-01-08T09:58:04.453 に答える