你好,我在使用 Xamarin Android 开发时,遇到了一个关于 Listview 删除项目的问题。我的自定义行中有一个删除按钮,但是当我点击它时,会删除最后一项而不是选定的项。
下面是我的代码:
public override View GetView(int position, View convertView, ViewGroup parent)
{
Button btnDelete;
var item = _items[position];
var view = convertView;
if (view == null)
{
view = _content.LayoutInflater.Inflate(Resource.Layout.CustomRow, null);
view.FindViewById<TextView>(Resource.Id.PostTitle).Text = item.PostTitle;
view.FindViewById<TextView>(Resource.Id.PostMessage).Text = item.PostMessage;
view.FindViewById<TextView>(Resource.Id.PostDate).Text = item.PostDate;
view.FindViewById<TextView>(Resource.Id.AuthorName).Text = item.AuthorName;
view.FindViewById<ImageView>(Resource.Id.PostAvatar).SetImageResource(item.ImageResourceId);
view.FindViewById<TextView>(Resource.Id.Date_Read).Text = item.DateRead;
btnDelete = view.FindViewById<Button>(Resource.Id.btnDelete);
btnDelete.Click += (sender, args) =>
{
var delPos = (int) (((Button) sender).GetTag(Resource.Id.btnDelete));
_items.RemoveAt(delPos);
NotifyDataSetChanged();
};
}
else
{
btnDelete = view.FindViewById<Button>(Resource.Id.btnDelete);
btnDelete.SetTag(Resource.Id.btnDelete, position);
}
return view;
}
或者你能告诉我如何获取ListView中所选行的ID,我认为这是问题所在。
btnDelete.Click += (sender, args) =>
{
var delPos = (int) (((Button) sender).GetTag(Resource.Id.btnDelete));
_items.RemoveAt(delPos);
NotifyDataSetChanged();
};