По какой-то причине мой обработчик события Checkbox.Click дважды вызывается в моем адаптере Custom ListView Xamarin.Android. Я предоставляю свой метод GetView ниже для любой справки или указателя в том, что я делаю неправильно.Checkbox Click Event Handler Called Twice
public override View GetView(int position, View convertView, ViewGroup parent)
{
ServiceViewHolder holder = null;
var view = convertView;
if (view == null)
{
view = Context.LayoutInflater.Inflate(Resource.Layout.ListRowService, null);
holder = new ServiceViewHolder
{
Name = view.FindViewById<TextView>(Resource.Id.tvServiceName),
Price = view.FindViewById<TextView>(Resource.Id.tvServicePrice),
SelectCheckbox = view.FindViewById<CheckBox>(Resource.Id.checkboxAdd)
};
view.Tag = holder;
}
else
{
holder = view.Tag as ServiceViewHolder;
}
var tempServiceItem = ServiceItems[position];
holder.Name.Text = tempServiceItem.Name;
holder.SelectCheckbox.Click += (o, e) =>
{
if (holder.SelectCheckbox.Checked)
{
var myActivity = (ServicesListActivity) Context;
myActivity.OnServiceSelected(tempServiceItem, true);
}
else
{
var myActivity = (ServicesListActivity) Context;
myActivity.OnServiceSelected(tempServiceItem, false);
}
};
return view;
}
private class ServiceViewHolder : Java.Lang.Object
{
public TextView Name { get; set; }
public TextView Price { get; set; }
public CheckBox SelectCheckbox { get; set; }
}
И только уточнить, цель этого обработчика события Checkbox.Click его для того чтобы передать выбранный элемент в деятельности, которую он делает, но тогда он называет себя снова за каждый клик после первого щелчка.
Большое вам спасибо, это указывает на меня в правильном направлении, но h.Position дает мне ошибку компиляции. –