How to listview row in textview change text in android? -


i develop listview in custom row created.but used list button click open alert dialog box , selected radio button dialog dismiss , call update function how change row text .my code below.please give me solution.and saved state row.

public class almessagesadapter extends arrayadapter<dtoallmessages> {          private layoutinflater inflator;         private arraylist<dtoallmessages> userlist;          public almessagesadapter(activity context,                 arraylist<dtoallmessages> list) {             super(context, r.layout.custom_list, list);              this.userlist = list;             inflator = context.getlayoutinflater();         }          @override         public view getview(final int position, view convertview,                 viewgroup parent) {              viewholder holder = null;             if (convertview == null) {                 convertview = inflator.inflate(r.layout.custom_list, null);                 holder = new viewholder();                 holder.title = (textview) convertview.findviewbyid(r.id.tvname);                 holder.date_cr = (textview) convertview                         .findviewbyid(r.id.tvdate);                 holder.img = (imageview) convertview.findviewbyid(r.id.ivicon);                 holder.tokenbtn = (textview) convertview                         .findviewbyid(r.id.tokenbtn);                 convertview.settag(holder);                 convertview.settag(r.id.tvname, holder.title);                 convertview.settag(r.id.tvdate, holder.date_cr);                 convertview.settag(r.id.ivicon, holder.img);                 convertview.settag(r.id.tokenbtn, holder.tokenbtn);              } else {                 holder = (viewholder) convertview.gettag();             }               token = userlist.get(position).gettoken();               token = token.substring(0, token.length() - 3);              holder.title.settext(userlist.get(position).getname() + "(" + token                     + ")");              string type_data = userlist.get(position).gettype().tostring();              if ((type_data.equals("text")) || (type_data.equals("photo"))) {                 holder.date_cr.settext(userlist.get(position).gettype()                         + ":received "                         + userlist.get(position).getcreated_date());                 holder.tokenbtn.setvisibility(view.visible);                 list.setitemscanfocus(true);             } else if (type_data.equals("out")) {                 holder.date_cr.settext(userlist.get(position).gettype()                         + ":sent " + userlist.get(position).getcreated_date());                 holder.tokenbtn.setvisibility(view.gone);             }              if (type_data.equals("text")) {                 holder.img.setbackgroundresource(r.drawable.chatmessage);              } else if (type_data.equals("photo")) {                 holder.img.setbackgroundresource(r.drawable.photomessage);              } else if (type_data.equals("out")) {                  holder.img.setbackgroundresource(r.drawable.outmessafe);             }              if (position % 2 == 0) {                 convertview.setbackgroundresource(r.drawable.whitebackground);             } else {                 convertview.setbackgroundresource(r.drawable.greybackground);             }              holder.tokenbtn.setonclicklistener(new view.onclicklistener() {                  @override                 public void onclick(view v) {                      alertboxshow(position);                 }             });              return convertview;         }          class viewholder {             protected imageview img;             protected textview date_cr;             protected textview title;             protected textview tokenbtn;         }     } 

and holder.tokenbutton click open alertdialog box incode below::

public void alertboxshow(int position) {         final int pos=position;         log.v("log_tag"," position ::"+pos);         final charsequence[] items = { " 5 ", " 10 ", " 15 "};          alertdialog.builder alt_bld = new alertdialog.builder(this);         alt_bld.setsinglechoiceitems(items, -1,                 new dialoginterface.onclicklistener() {                     public void onclick(dialoginterface dialog,  int which) {                          switch (which) {                         case 0:                             updatestatus(pos,5);                             dialog.dismiss();                             // code when first option seletced                             break;                         case 1:                             updatestatus(pos,10);                             // code when 2nd option seletced                             dialog.dismiss();                             break;                         case 2:                             updatestatus(pos,15);                             dialog.dismiss();                             // code when 3rd option seletced                             break;                         }                      }                  });         alertdialog alert = alt_bld.create();         alert.show();     } 

and call updatestatus function in want holder.title settext , refresh list row how possible.and update status function in below.

private void updatestatus(int index, int radioselectvalue) {          holder.title.settext(userlist.get(index).getname() + "(" + token                 + ")");       } 

you can use settag() , gettag() position of row item clicked,

below settag()

convertview.settag(r.id.tokenbtn, postion); 

and gettag() inside holder.tokenbtn onclick()

int pos = (integer)v.gettag(r.id.tokenbtn); textview txtview = (textview)v.gettag(r.id.tvname); // use textview                                                              update value. alertboxshow(pos); 

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 -