как нажать на динамически добавляемый текстовый вид в xamarin android?потому что всякий раз, когда я нажимаю на текстовое представление, он показывает только последний текст элемента, а ниже мой код - PullRequest
0 голосов
/ 30 мая 2018
      TableRow row;
       TextView txt;

 LinearLayout  tl = FindViewById<LinearLayout>(Resource.Id.tableLayout);
            var servicesData = DataServices.GetAllServices();
            try
            {
                foreach (var item in servicesData)
                {
                    row = new TableRow(this);
                    imgBtn = new ImageButton(this);

                    txt = new TextView(this) {Id=item.ServiceId };

                    btntxt = new Button(this);

                    txt.SetOnTouchListener(new View.IOnTouchListener)

                    String imgUrl = "https://careservicesapi.boffincoders.com/Images/" + item.ServiceIcon;


                    var imageBmp = GetImageBitmapFromUrl(imgUrl);

                   Drawable drawable = new BitmapDrawable(Resources, imageBmp);
                    Drawable drawable1 = new BitmapDrawable();
                    drawable.SetBounds(0, 0, 50, 40);

                    txt.SetMinimumHeight(100);
                    txt.SetMinimumWidth(100);
                    txt.SetHeight(100);
                    txt.TextSize = 10;
                    txt.Gravity = GravityFlags.Center;
                    txt.Text = item.ServiceName;
                    txt.Tag = item.ServiceId;
                    txt.Click += Txt_Click;

                  txt.SetCompoundDrawablesWithIntrinsicBounds(drawable1, drawable, drawable1, drawable1);
                   txt.Clickable = true;

                     tl.AddView(row);
                    row.AddView(txt);

                }

            }
 private void Txt_Click(object sender, EventArgs e)
        {
            var q = this.txt.Text;

        }

1 Ответ

0 голосов
/ 31 мая 2018

показывает только последний текст элемента

Поскольку вы отображаете текст txt, это последний элемент.Пожалуйста, получите текст от sender.

Например:

    private void Txt_Click(object sender, System.EventArgs e)
    {
        var q = ((TextView)sender).Text;
        Toast.MakeText(this, q, ToastLength.Short).Show();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...