android - Change layout of next item in ListView -


i'm beginner android developer.

i need change layout of next item in listview clicking button on current item. don't understand how access next item.

so, how change layout of next item?

here code:

adapter class

public class stepsadapter extends arrayadapter<string> {      private static final int view_type_first = 0;     private static final int view_type_next = 1;     private static final int view_type_count = 2;      private list<string> steps;     private context mcontext;      public stepsadapter(context context, int resource, int textviewresourceid, list<string> objects) {         super(context, resource, textviewresourceid, objects);         mcontext = context;         steps = objects;     }      public static class viewholder {         public final button btndone;         public final textview txtview;         public final textview txtviewmain;          public viewholder(view view) {             btndone = (button)view.findviewbyid(r.id.right);             txtview = (textview)view.findviewbyid(r.id.list_item_step_textview_finish);             txtviewmain = (textview)view.findviewbyid(r.id.list_item_step_textview);         }     }      @override     public int getitemviewtype(int position) {         return (position != 0) ? view_type_first : view_type_next;     }      @override     public int getviewtypecount() {         return view_type_count;     }      @override     public view getview(int position, view convertview, final viewgroup parent) {         int viewtype = getitemviewtype(position);         int layoutid = -1;         switch (viewtype){             case view_type_first: {                 layoutid = r.layout.list_item_step;                 break;             }             case view_type_next: {                 layoutid = r.layout.list_item_first_step;                 break;             }         }         view view = layoutinflater.from(mcontext).inflate(layoutid, parent, false);         final viewholder viewholder = new viewholder(view);         view.settag(viewholder);         viewholder.txtviewmain.settext(steps.get(position));          viewholder.btndone.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                 view parentrow = (view) v.getparent();                 listview listview = (listview) parentrow.getparent();                 int listvcount = listview.getcount();                 int position = listview.getpositionforview(parentrow);                  viewholder.txtview.setvisibility(view.visible);                 viewholder.btndone.setvisibility(view.gone);                 string textfinishstep = "passed step " + (position + 1) + " : " + viewholder.txtviewmain.gettext();                 viewholder.txtview.settext(textfinishstep);                 viewholder.txtviewmain.setvisibility(view.gone);             }         });         return view;     } } 

in stepsadapter take 1 field follows

private int cposition=-1; 

and take 1 method follows

public void setposition(int cposition){     this.cposition=cposition; } 

and in

yourlistview.setonitemclicklistener(new onitemclicklistener() {          @override         public void onitemclick(adapterview<?> parent, view view,                 int position, long id) {             adapter.setposition(position);             adapter.notifydatasetchanged();         }     }); 

and in

@override  public view getview(int position, view convertview, final viewgroup parent) {        if(cposition!=-1&&position=cposition+1){              //change list item layout here               cposition=-1;         }  } 

hope helps you.


Comments

Popular posts from this blog

javascript - Google App Script ContentService downloadAsFile not working -

javascript - Function overwritting -

php - Find a regex to take part of Email -