【发布时间】:2014-10-19 11:54:56
【问题描述】:
嗨,我在 android 上删除 listview 中的项目时遇到问题,我使用的是 xamarin android,我有一个自定义行,它有删除按钮,但是当我点击它时,删除最后一个项目而不是所选项目。
这是我的代码
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;
}
或者你能告诉我如何在列表视图中获取所选行的 ID,我认为这是问题所在。
btnDelete.Click += (sender, args) =>
{
var delPos = (int) (((Button) sender).GetTag(Resource.Id.btnDelete));
_items.RemoveAt(delPos);
NotifyDataSetChanged();
};
【问题讨论】:
标签: c# android android-listview xamarin xamarin.android