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

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -