【发布时间】:2015-02-12 10:20:29
【问题描述】:
我有一个项目使用 ListView 列出一些优惠。 ListView 填充有下面的适配器。
我最近向 ListView 项目添加了一个删除按钮,这显然应该从列表中删除该项目。一切都很好。但是,在我成功删除我的第一个项目后,下次我单击其中一个 ListView 项目上的删除按钮时,它实际上会从列表中删除两个项目。
deleteButton.click 事件似乎触发了两次,第二次我尝试从列表中删除项目。
您可以看到我一直在尝试各种方法来尝试通过我拥有的各种注释代码行使其工作。
有人可以帮忙吗?
public class OffersAdapter : BaseAdapter<TableItem>
{
Button DeleteButton;
List<TableItem> items;
Activity context;
public OffersAdapter(Activity context, List<TableItem> items)
: base()
{
this.context = context;
this.items = items;
}
public override long GetItemId(int position)
{
return position;
}
public override TableItem this[int position]
{
get { return items[position]; }
}
public override int Count
{
get { return items.Count; }
}
public override View GetView(int position, View convertView, ViewGroup parent)
{
var item = items[position];
View view = convertView;
if (view == null)
{
view = context.LayoutInflater.Inflate (Resource.Layout.OffersLayoutItem, null);
}
// else
// {
// DeleteButton = view.FindViewById<Button> (Resource.Id.offerDeleteButton);
// //DeleteButton.SetTag (Resource.Id.deleteButton, position);
//
// }
view.FindViewById<TextView>(Resource.Id.Text1).Text = item.company;
view.FindViewById<TextView>(Resource.Id.Text2).Text = item.Heading;
view.FindViewById<TextView>(Resource.Id.Text3).Text = item.SubHeading;
view.FindViewById<ImageView> (Resource.Id.Image).SetImageBitmap (item.bitmapImage);
DeleteButton = view.FindViewById<Button> (Resource.Id.offerDeleteButton);
//DeleteButton.Tag = position;
//DeleteButton.SetTag (Resource.Id.deleteButton, position);
DeleteButton.Click += (object sender, EventArgs e) =>
{
DeleteButton.Tag = position;
Console.WriteLine("position clicked was " + position);
//int delPos = (int)(((Button)sender).GetTag (Resource.Id.offerDeleteButton));
items.RemoveAt (position);
string heading = item.Heading;
string subheading = item.SubHeading;
deleteItemFromParse(heading, subheading);
NotifyDataSetChanged ();
};
return view;
}
【问题讨论】:
-
你为什么评论
DeleteButton.Tag行? -
我想你的意思是第一个 - 在以下行: DeleteButton = view.FindViewById
-
看我的回答可能有帮助
标签: android listview android-listview xamarin listadapter