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
Post a Comment