Android : deleting listview in xamarin android

on Sunday, August 10, 2014


hi i had a problem deleting items in listview on android, im using xamarin android, i have a custom row that has delete button, but when i click on it, deleting the last item not the selected item.


here is my code



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;
}


or can u tell me guys how to get the id of the selected row in listview, i think that is the problem.



btnDelete.Click += (sender, args) =>
{
var delPos = (int) (((Button) sender).GetTag(Resource.Id.btnDelete));
_items.RemoveAt(delPos);
NotifyDataSetChanged();
};

0 comments:

Post a Comment