我如何将按钮单击计数器放在列表视图适配器内



嗨,我仍然是Xamarin Android:(的初学者我用一个按钮点击制作列表视图,当我点击按钮时,我将计算点击并显示在按钮中,但我也无法处理点击

这是我的适配器 GetView 代码:

public override View GetView(int position, View convertView, ViewGroup parent)
        {
            var item = items[position];
            View view = convertView;
            if (view == null) // no view to re-use, create new
                view = context.LayoutInflater.Inflate(Resource.Layout.list_ticket_view, null);
            view.FindViewById<TextView>(Resource.Id.maintxt).Text = item.maintitle;
            view.FindViewById<TextView>(Resource.Id.txtthwab).Text = item.thwab;
            var button1 = view.FindViewById<Button>(Resource.Id.button1);
             button1.Text = (item.counter).ToString();
         }

我使按钮 1 采取起始值表单 item.counter 并开始计数即 item.counter = 10 来自类点击时将 11,12,13,..等最好的问候

你可以试试这个:

class YourAdapter : BaseAdapter, View.IOnClickListener
    {
        private Dictionary<int, string> dictionary = new Dictionary<int, string>();
        int[] item;  //this is the data in my code ,you should replace your own data
    public YourAdapter(int[] value)  // the parameter use your own data
        {
            //copy your data into the dictionary
            item = value;
            for (int i = 0; i < item.Length; i++)
            {
                dictionary.Add(i,item[i].ToString());
            }
        }
public override View GetView(int position, View convertView, ViewGroup parent)
    {
        var item = items[position];
        View view = convertView;
        if (view == null) // no view to re-use, create new
            view = context.LayoutInflater.Inflate(Resource.Layout.list_ticket_view, null);
        view.FindViewById<TextView>(Resource.Id.maintxt).Text = item.maintitle;
        view.FindViewById<TextView>(Resource.Id.txtthwab).Text = item.thwab;
        var button1 = view.FindViewById<Button>(Resource.Id.button1);
        button1.Text = dictionary[position];
        button1.Tag = position;
        button1.SetOnClickListener(this);
        return convertView;
     }
}
 public void OnClick(View v)
        {
            var button = v as Button;
            int count = int.Parse(button.Text) + 1;
            button.Text = count.ToString();
            dictionary[(int) v.Tag] = count.ToString();
        }

让您的adapter实施View.IOnClickListener例如:

class MyAdapter : BaseAdapter ,View.IOnClickListener

最新更新