android - onClick of Image Button the value changes but repeat itself at 10 20 place -


i have 6 image buttons, onclick changes , from, repeats @ 10th 20th position. clueless, sure has getview f adapter. hence, posting code of adapter. appreciated.

public class listavailibilityadapter extends baseadapter {       context context;      int layoutresourceid;       protected list<useravailibilitymodel> listavailibility;      layoutinflater inflater;       public listavailibilityadapter(context context, list<useravailibilitymodel> listavailibility) {          this.listavailibility = listavailibility;          this.inflater = layoutinflater.from(context);          this.context = context;       }       public int getcount() {          if(listavailibility.size()<=0)             return 1;          log.d("size of array-->", string.valueof(listavailibility.size()));          return listavailibility.size();      }       public useravailibilitymodel getitem(int position) {          return listavailibility.get(position);      }      /* public list<useravailibilitymodel> getlist(int position) {          return listavailibility;      }*/       @override         public long getitemid(int position) {             // todo auto-generated method stub          return listavailibility.get(position).getimagemorning();         }       public view getview(int position, view convertview, viewgroup parent) {           viewholder holder;          view vi = convertview;          if (convertview == null) {           holder = new viewholder();          convertview = this.inflater.inflate(r.layout.layout_list_availability_item,parent, false);           holder.txtdate = (textview) convertview.findviewbyid(r.id.lbl_date);          holder.txtday = (textview) convertview.findviewbyid(r.id.lbl_day);          holder.imgbtnmorning = (imagebutton) convertview.findviewbyid(r.id.img_btn_morning);          holder.imgbtnafternoon = (imagebutton) convertview.findviewbyid(r.id.img_btn_afernoon);          holder.imgbtnevening = (imagebutton) convertview.findviewbyid(r.id.img_btn_evening);           holder.imgbtnmorningchecked = (imagebutton) convertview.findviewbyid(r.id.img_btn_morning_checked);          holder.imgbtnafternoonchecked = (imagebutton) convertview.findviewbyid(r.id.img_btn_afernoon_checked);          holder.imgbtneveningchecked = (imagebutton) convertview.findviewbyid(r.id.img_btn_evening_checked);           holder.txtmorning = (textview) convertview.findviewbyid(r.id.txtmorning);          holder.txtafternoon = (textview) convertview.findviewbyid(r.id.txtafernoon);          holder.txteveing = (textview) convertview.findviewbyid(r.id.txtevening);            holder.imgbtnmorningchecked.setvisibility(view.gone);          holder.imgbtnafternoonchecked.setvisibility(view.gone);          holder.imgbtneveningchecked.setvisibility(view.gone);            convertview.settag(holder);          }           else {              holder = (viewholder) convertview.gettag();              }          if(listavailibility.size()<=0)          {              holder.txtdate.settext("no data");              holder.txtday.settext("no data");           }          else{               useravailibilitymodel useravailmodel = listavailibility.get(position);              holder.txtdate.settext(useravailmodel.getdisaplydate());              holder.txtday.settext(useravailmodel.getdisaplyday());              holder.imgbtnmorning.setimageresource(useravailmodel.getimagemorning());              holder.imgbtnafternoon.setimageresource(useravailmodel.getimageafternoon());              holder.imgbtnevening.setimageresource(useravailmodel.getimageevening());               final viewholder fianlholder = holder;              final int finalposition = position;                fianlholder.imgbtnmorning.setonclicklistener(new onclicklistener() {                     @override                     public void onclick(view convertview) {                         // if image source equals drawable then...                         // else change image source drawable...                         toast.maketext( context,"morning btn clicked"+finalposition,toast.length_short).show();                            //if(((imagebutton)convertview).getdrawable()==drawablemorning){                             fianlholder.imgbtnmorningchecked.setvisibility(view.visible);                             fianlholder.imgbtnmorningchecked.setimageresource(r.drawable.check);                             getitem(finalposition).setmornigbtnclick(true);                         //}                     }                 });                 fianlholder.imgbtnmorningchecked.setonclicklistener(new onclicklistener() {                     @override                     public void onclick(view convertview) {                         // if image source equals drawable then...                         // else change image source drawable...                         toast.maketext( context,"morning btn checked clicked"+finalposition,toast.length_short).show();                           //if(((imagebutton)convertview).getdrawable()==drawablecheck){                             fianlholder.imgbtnmorningchecked.setvisibility(view.gone);                             fianlholder.imgbtnmorning.setvisibility(view.visible);                             fianlholder.imgbtnmorning.setimageresource(r.drawable.morning);                             getitem(finalposition).setmornigbtncheckclick(true);                        // }                      }                 });                  fianlholder.imgbtnafternoon.setonclicklistener(new onclicklistener() {                     @override                     public void onclick(view convertview) {                         // if image source equals drawable then...                         // else change image source drawable...                         toast.maketext( context,"afternoon image clicked"+finalposition,toast.length_short).show();                         //if(convertview.getid()==r.id.img_btn_afernoon){                         fianlholder.imgbtnafternoonchecked.setvisibility(view.visible);                             //fianlholder.imgbtnafternoon.setvisibility(view.gone);                         fianlholder.imgbtnafternoonchecked.setimageresource(r.drawable.check);                       //  }                      }                 });               fianlholder.imgbtnafternoonchecked.setonclicklistener(new onclicklistener() {                     @override                     public void onclick(view convertview) {                         // if image source equals drawable then...                         // else change image source drawable...                         toast.maketext( context,"afternoon btn checked clicked"+finalposition,toast.length_short).show();                           //if(convertview.getid()==r.id.img_btn_afernoon_checked){                         fianlholder.imgbtnafternoonchecked.setvisibility(view.gone);                         fianlholder.imgbtnafternoon.setvisibility(view.visible);                         fianlholder.imgbtnafternoon.setimageresource(r.drawable.afternoon);                         // }                      }                 });               fianlholder.imgbtnevening.setonclicklistener(new onclicklistener() {                     @override                     public void onclick(view convertview) {                         // if image source equals drawable then...                         // else change image source drawable...                         toast.maketext( context,"evening image clicked"+finalposition,toast.length_short).show();                         //if(convertview.getid()==r.id.img_btn_evening){                         fianlholder.imgbtneveningchecked.setvisibility(view.visible);                            // fianlholder.imgbtnevening.setvisibility(view.gone);                         fianlholder.imgbtneveningchecked.setimageresource(r.drawable.check);                        // }                      }                 });               fianlholder.imgbtneveningchecked.setonclicklistener(new onclicklistener() {                     @override                     public void onclick(view convertview) {                         // if image source equals drawable then...                         // else change image source drawable...                         toast.maketext( context,"eveing btn checked clicked"+finalposition,toast.length_short).show();                          // if(convertview.getid()==r.id.img_btn_evening_checked){                         fianlholder.imgbtneveningchecked.setvisibility(view.gone);                         fianlholder.imgbtnevening.setvisibility(view.visible);                         fianlholder.imgbtnevening.setimageresource(r.drawable.night);                        // }                      }                 });             }           return convertview;      }         private static class viewholder {          textview txtdate;          textview txtday;          imagebutton imgbtnmorning;          imagebutton imgbtnafternoon;          imagebutton imgbtnevening;          imagebutton imgbtnmorningchecked;          imagebutton imgbtnafternoonchecked;          imagebutton imgbtneveningchecked;          textview txtmorning;          textview txtafternoon;          textview txteveing;           }    } 

i not clear on question or problem. seems have peculiar issues displaying data on listview correctly. try sample code in getview() in 1 of onclick():

fianlholder.imgbtnmorning.setonclicklistener(new onclicklistener() {    @override    public void onclick(view convertview) {       ...       imagebutton imgbtn = (imagebutton) convertview;       imgbtn.setvisibility(view.visible);       ...       notifydatasetchanged();       ... 

notes:

  • it safer use view parameter since view in focus/clicked. , think looks simpler , generic.
  • typecast view appropriate class type. otherwise possible crash.
  • perhaps important. call notifydatasetchanged forces, normally, refresh listview if data impacted visible.

Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -