android - Bug in cell item deletion into custom adapter -
i have listview item delete button: when button pressed row deleted. adapter extends cursoradapter data stored sqllite db.
deletion code custom adapter:
public void bindview(view view, final context context, final cursor c) { viewholder holder = (viewholder)view.gettag(); if(holder == null){ holder = new viewholder(); holder.id = c.getint(id); holder.delb = (button)view.findviewbyid(r.id.delb); final int id = holder.id; holder.delb.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { context.getcontentresolver().delete(seriescontentprovider.series_content_uri, dbhelper.column_id+"=?", new string[]{string.valueof(id)}); } }); view.settag(holder); }
this happens, have list:
item1 item2 item3
i decide delete item2, works fine:
item1 item3
now delete item3, get:
item3
item1 got deleted instead! why?
edit: ok happens if first add new item. anyway, if add item, close app, , start again works fine. checked system.out , seems that, when add new item, id attribute of holder classes messed up...
solved...problem called getid method holder, cells update not noticed:
if(holder == null){ holder = new viewholder(); holder.delb = (button)view.findviewbyid(r.id.delb); ... } holder.id = c.getint(id); //this solved
Comments
Post a Comment