java - How to remove custom listeners? -


i have many listactivity classes in app act pretty same : list property (textview) on left , value (button) on right. when press button want create dialog. because of repetability, decided create general custom arrayadapter :

public class generaltvbtnadapter extends arrayadapter<settingsproperty> {  private context mcontext; private arraylist<settingsproperty> mprops; private int mlayout; private buttonlistener mlistener;  public generaltvbtnadapter(context context, int tv_btn_layout, arraylist<settingsproperty> objects, buttonlistener listener) {     super(context, tv_btn_layout, objects);     mcontext = context;     mprops = objects;     mlayout = tv_btn_layout;     mlistener = listener; }  public void updatevalue (int position, string newvalue) {     mprops.get(position).setvalue(newvalue);     notifydatasetchanged(); }  private class viewholder {     textview mname;     button mvalue; }  @override public view getview(final int position, view convertview, viewgroup parent) {     viewholder holder;     if (convertview == null) {         holder = new viewholder();         layoutinflater minflater = layoutinflater.from(mcontext);         convertview = minflater.inflate(mlayout, null);         holder.mname = (textview) convertview.findviewbyid(r.id.prop);         holder.mvalue = (button) convertview.findviewbyid(r.id.value);         convertview.settag(holder);     }     else {         holder = (viewholder) convertview.gettag();     }      holder.mname.settext(mprops.get(position).getname());     holder.mvalue.settext(mprops.get(position).getvalue());      holder.mvalue.setonclicklistener(new view.onclicklistener() {         @override         public void onclick(view view) {             mlistener.onbuttonclicked(position);         }     });      return convertview; }  public interface buttonlistener {     void onbuttonclicked (int position); } } 

i want know how can remove buttonlisteners listeners after calling activity destroyed.

p.s :settingsproperty pojo string name , string value , tv_btn_layout layout textview , button described above.

if intent remove custom listener, have reset null. can create setter

public void setbuttonlistener (final buttonlistener listener) {     mlistener = listener; } 

and call if outside null. sure, before accessing mlistener, check null values


Comments