android Problem with checkBox with baseAdapter -


i have used baseadepter display 3 view in list . first 2 textview , last checkbox view . when going check checkbox , scroll list ,after in specific number of item ,the other check box automatic checked unaseptedlly ..

i don't have idea why kind of thing occur .

is der know solution of ..

here code baseadepter ..

private static class adeptergetunit extends baseadapter{ private layoutinflater minflater;  public adeptergetunit (context context){    minflater = layoutinflater.from(context); } @override public int getcount() {      positionlist  = sharedpreferences.getint(unitscreen.position, 0);                 if(positionlist==0){currentlistlenght=arrayholder.dbspeed.size();}     else if(positionlist==1){currentlistlenght=arrayholder.dbangle.size();}     else if(positionlist==2){currentlistlenght=listtemperature.length;}     else if(positionlist==3){currentlistlenght=arrayholder.dblenght.size();}     else if(positionlist==4){currentlistlenght=arrayholder.dbweightmass.size();}     else if(positionlist==5){currentlistlenght=arrayholder.dbpressure.size();}     else if(positionlist==6){currentlistlenght=arrayholder.dbpower.size();}     else if(positionlist==7){currentlistlenght=arrayholder.dbcurrency.size();}     else if(positionlist==8){currentlistlenght=arrayholder.dbdatasize.size();}     else if(positionlist==9){currentlistlenght=arrayholder.dbvolume.size();}     else if(positionlist==10){currentlistlenght=arrayholder.dbtime.size();}     else if(positionlist==11){currentlistlenght=arrayholder.dbarea.size();}     else if(positionlist==12){currentlistlenght=arrayholder.dbcoocking.size();}     return  currentlistlenght;  }  @override public view getview(int position, view convertview, viewgroup parent) {     viewholder holder;        if (convertview==null){            convertview = minflater.inflate(r.layout.row_edit_unit, null);            holder = new viewholder();            holder.text = (textview) convertview.findviewbyid(r.id.txt_show_units);            holder.texttotle = (textview) convertview.findviewbyid(r.id.txt_unit);            holder.checkbox = (checkbox) convertview.findviewbyid(r.id.check_box);            convertview.settag(holder);        }        else        {            holder = (viewholder) convertview.gettag();        } //           positionlist  = sharedpreferences.getint(unitscreen.position, 0);                    switch (positionlist) {     case 0:         holder.text.settext(arrayholder.dbspeed.get(position));         holder.texttotle.settext(arrayholder.dbspeedunit.get(position));         txtunittitlename.settext("speed");         break;     case 1:         holder.text.settext(arrayholder.dbangle.get(position));         holder.texttotle.settext(arrayholder.dbangleunit.get(position));         txtunittitlename.settext("angle");         break;     case 2:         holder.text.settext(arrayholder.dbtemperature.get(position));         holder.texttotle.settext(arrayholder.dbtemperatureunit.get(position));         txtunittitlename.settext("temperature");        break;     case 3:         holder.text.settext(arrayholder.dblenght.get(position));         holder.texttotle.settext(arrayholder.dblenghtunit.get(position));         txtunittitlename.settext("lenght");         break;     case 4:         holder.text.settext(arrayholder.dbweightmass.get(position));         holder.texttotle.settext(arrayholder.dbweightmassunit.get(position));         txtunittitlename.settext("weight/mass");         break;     case 5:         holder.text.settext(arrayholder.dbpressure.get(position));         holder.texttotle.settext(arrayholder.dbpressureunit.get(position));         txtunittitlename.settext("pressure");         break;     case 6:         holder.text.settext(arrayholder.dbpower.get(position));         holder.texttotle.settext(arrayholder.dbpowerunit.get(position));         txtunittitlename.settext("power");         break;     case 7:          holder.text.settext(arrayholder.dbcurrency.get(position));         holder.texttotle.settext(arrayholder.dbcurrencyunit.get(position));         if(!holder.checkbox.ischecked())         holder.checkbox.setchecked(false);         else         holder.checkbox.setchecked(true);            txtunittitlename.settext("currency");         break;     case 8:         holder.text.settext(arrayholder.dbdatasize.get(position));         holder.texttotle.settext(arrayholder.dbdatasizeunit.get(position));         txtunittitlename.settext("datasize");         break;     case 9:         holder.text.settext(arrayholder.dbvolume.get(position));         holder.texttotle.settext(arrayholder.dbvolumeunit.get(position));         txtunittitlename.settext("volume");         break;     case 10:         holder.text.settext(arrayholder.dbtime.get(position));         holder.texttotle.settext(arrayholder.dbtimeunit.get(position));         txtunittitlename.settext("time");         break;     case 11:         holder.text.settext(arrayholder.dbarea.get(position));         holder.texttotle.settext(arrayholder.dbareaunit.get(position));         txtunittitlename.settext("area");         break;     case 12:         holder.text.settext(arrayholder.dbcoocking.get(position));         txtunittitlename.settext("coocking");         break;     default:         break;     }             return convertview; } static class viewholder {      textview text ,texttotle;     imageview icon;     checkbox checkbox;          } @override public object getitem(int position) {     // todo auto-generated method stub     return position-1; } @override public long getitemid(int position) {     // todo auto-generated method stub     return position-1; }  @override public void notifydatasetchanged() {     super.notifydatasetchanged(); }  } 

try code below. answer right, edited it.

package com.android.diseaserating; import java.util.vector;  import com.android.diseaserating.db.dbconnect; import com.android.diseaserating.settings.settingslist; import android.content.context; import android.database.cursor; import android.graphics.color; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.checkbox; import android.widget.compoundbutton; import android.widget.imageview; import android.widget.textview;  public class colorpickerbase1 extends baseadapter{  public colorpickerbase1(context context , vector<string> colorname ,vector<string> colorhex) { layoutinflater = layoutinflater.from(context);  this.colorhex = colorhex; this.colorname = colorname;  dbconnect = new dbconnect(context, bean.database_name);  }  @override public int getcount() {     return colorname.size(); }  @override public object getitem(int arg0) {     return arg0; }  @override public long getitemid(int position) {     return position; }  @override       public view getview(int position, view convertview, viewgroup parent) {     viewholder holder ;     if(convertview==null){         holder = new viewholder();         convertview = layoutinflater.inflate(r.layout.row_color_picker, null);          holder.imgcolorview = (imageview)convertview.findviewbyid(r.id.imgviewcolor);         holder.txtcolorname = (textview)convertview.findviewbyid(r.id.txtcolorname);         holder.chkboxcolorcked = (checkbox)convertview.findviewbyid(r.id.chkbox);          boolean stop=true;         if(settingslist.setting)             holder.chkboxcolorcked.setenabled(false);           convertview.settag(holder);     }     else{         holder = (viewholder)convertview.gettag();     }     system.out.println("teh position "+position ) ;     system.out.println("teh color "+colorhex.get(position) ) ;      if (position == 801 || position == 802 || position == 803             || position == 1009 || position == 1011 || position == 1013             || position == 1012 || position == 1017 || position == 1018             || position == 1019 || position == 1024 || position == 1026             || position == 1027 || position == 1028 || position == 1029             || position == 1030 || position == 1029 || position == 1030             || position == 1049 || position == 1068 || position == 1076             || position == 1082) {             }     else{         try {             holder.imgcolorview.setbackgroundcolor(color.parsecolor("#"                     + colorhex.get(position)));           } catch (exception e) {             // todo auto-generated catch block             e.printstacktrace();         }         holder.txtcolorname.settext("" + colorname.get(position));      }      holder.chkboxcolorcked.settag(position);     holder.chkboxcolorcked.setoncheckedchangelistener(btnchklistner);       if(bean.tempvector.get(position)){         holder.chkboxcolorcked.setchecked(true);     }     else{         holder.chkboxcolorcked.setchecked(false);     }      return convertview;  }  compoundbutton.oncheckedchangelistener btnchklistner = new compoundbutton.oncheckedchangelistener()  {     @override     public void oncheckedchanged(compoundbutton buttonview, boolean ischecked)      {         //s("oncheckedchanged", "oncheckedchanged");         final   int  positionchecked = (integer)buttonview.gettag();         //system.out.println("position ====="+positionchecked);         if(buttonview.ischecked())         {                                 bean.colorrangeonepicker1.add(positionchecked);             bean.tempvector.set(positionchecked, true);              if(bean.colorrangeonepicker1.size()>2){                 bean.colorrangeonepicker1.remove(0);  //                  string sql  = "update displaysettings set range1color1 = '"+bean.colorrangeonepicker1.get(0) +"',range1color2 ='"+bean.colorrangeonepicker1.get(1)+"' id ='"+imagedisplay.settingid+"'"; //                   //                  dbconnect.execnonquery(sql);              }             system.out.println("color range 1  "+bean.colorrangeonepicker1);             //system.out.println("in if ...is cheked ");         }         else{                        bean.tempvector.set(positionchecked, false);         }           for(int i=0; i<3; i++){          }     } };   layoutinflater layoutinflater ;   class viewholder{     imageview imgcolorview;     textview txtcolorname;     checkbox chkboxcolorcked; }  vector<string > colorname; vector<string> colorhex;      dbconnect dbconnect; } 

Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -