android - Remove item from custom listview on button click -


i have custom listview, has 2 textviews , 2 buttons (play , delete button) want when click delete button delete current line.

my adapter class

import java.util.arraylist;  import android.content.context; import android.graphics.color; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.view.onclicklistener; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.button; import android.widget.textview;  public class sunetepreferateadaptor extends baseadapter {      class ob {         string titlu, descriere;          public ob(string titlu, string descriere) {             this.titlu = titlu;             this.descriere = descriere;         }     }      arraylist<ob> lista;     context context;      public sunetepreferateadaptor(context context) {         this.context = context;         lista = new arraylist<ob>();          (int = 1; <= 20; i++) {             lista.add(new ob("text", "text2"));          }      }      @override     public int getcount() {         // todo auto-generated method stub         return lista.size();     }      @override     public object getitem(int arg0) {         // todo auto-generated method stub         return lista.get(arg0);     }      @override     public long getitemid(int arg0) {         // todo auto-generated method stub         return arg0;     }      @override     public view getview(int arg0, view arg1, viewgroup arg2) {         // todo auto-generated method stub          layoutinflater inflater = (layoutinflater) context                 .getsystemservice(context.layout_inflater_service);         view row = inflater.inflate(r.layout.single_favsound_row, arg2, false);          button b2 = (button) row.findviewbyid(r.id.button2);         b2.setonclicklistener(new onclicklistener() {              @override             public void onclick(view arg0) {                 // here, want delete current row of listview                 //                 //             }         });         textview titlu = (textview) row.findviewbyid(r.id.singletext2);         titlu.settext(lista.get(arg0).titlu);         titlu.settextcolor(color.white);         titlu.settypeface(global.font1);         textview descriere = (textview) row.findviewbyid(r.id.singletext1);         descriere.settext(lista.get(arg0).descriere);         descriere.settextcolor(color.white);         descriere.settypeface(global.font1);          return row;     } } 

well how can that? i've tried making arraylist static , delete items on click.. no success..

you need not make arraylist static.

you need delete data list populates listview. call notifydatasetchanged(); refresh lsitview.

you can remove static key word , use

 button b2 = (button) row.findviewbyid(r.id.button1);         b2.settag(arg0);          b2.setonclicklistener(new onclicklistener() {              @override             public void onclick(view arg0) {                 int pos = (int)arg0.gettag();                   lista.remove(pos);                   sunetepreferateadaptor.this.notifydatasetchanged();            }         }); 

alternative :

you can pass list constructor of adapter class.

 listview lv = (listview) this.findviewbyid(r.id.listview1);          arraylist<ob> lista = new arraylist<ob>();          (int = 1; <= 20; i++) {             lista.add(new ob("text", "text"+i));          } 

lv.setadapter(new sunetepreferateadaptor(this,lista));

then have in separate .java file

class ob {     string titlu, descriere;      public ob(string titlu, string descriere) {         this.titlu = titlu;         this.descriere = descriere;     } } 

then

public class sunetepreferateadaptor extends baseadapter {       arraylist<ob> lista;     context context;      public sunetepreferateadaptor(context context, arraylist<ob> lista ) {         this.context = context;         this.lista= lista;      }      @override     public int getcount() {         // todo auto-generated method stub         return lista.size();     }      @override     public object getitem(int arg0) {         // todo auto-generated method stub         return lista.get(arg0);     }      @override     public long getitemid(int arg0) {         // todo auto-generated method stub         return arg0;     }      @override     public view getview(int arg0, view arg1, viewgroup arg2) {         // todo auto-generated method stub          layoutinflater inflater = (layoutinflater) context                 .getsystemservice(context.layout_inflater_service);         view row = inflater.inflate(r.layout.fg, arg2, false);          button b2 = (button) row.findviewbyid(r.id.button1);         b2.settag(arg0);         b2.setonclicklistener(new onclicklistener() {              @override             public void onclick(view arg0) {                 int pos = (int)arg0.gettag();                   lista.remove(pos);                   sunetepreferateadaptor.this.notifydatasetchanged();            }         });         textview titlu = (textview) row.findviewbyid(r.id.textview1);         titlu.settext(lista.get(arg0).titlu);         titlu.settextcolor(color.white);          textview descriere = (textview) row.findviewbyid(r.id.textview2);         descriere.settext(lista.get(arg0).descriere);           return row;     } } 

Comments

Popular posts from this blog

Why can rails not find a route created by a helper? -

javascript - jquery or ashx not working -

opencv - DataType<cv::detail::deriv_type>::depth what is it used for -