android Problem with checkBox with baseAdapter
<p>I have used baseAdepter for display three View in list .
first two are textView and last is checkBox View .
But when i going to check the checkBox and scroll the list ,after  in the some specific number of item ,the other check box is automatic checked unaseptedlly ..</p>

<p>i don't have idea Why this kind of thing is occur .</p>

<p>Is anybody der who know the solution of it ..</p>

<p>here is my code for baseadepter ..</p>

<pre><code>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();
}

}
</code></pre>
