title: CheckBox gets unchecked on scroll in a custom listview
body: <p>I know that this question has been asked over and over again but still I've not been a able to find a suggestion that really helps me. The checkbox is unchecked whenever the list is scrolled down. Yes I'm using a boolean array to store the values but this still doesn't fix the problem. Here is my code. Please suggest a solution for this. Thank you.</p>
  
  <pre><code> public View getView(final int position, View convertView, ViewGroup parent) {
      // TODO Auto-generated method stub
          final ViewHolder holder;
  final boolean[] itemChecked=new boolean[30];
  
      LayoutInflater inflater =  context.getLayoutInflater();  
      if(convertView==null)  
      {  
          convertView = inflater.inflate(R.layout.custom_list, null);
          holder = new ViewHolder();  
          holder.txtViewTitle = (TextView) convertView.findViewById(R.id.title_text);  
          holder.txtViewDescription = (TextView) convertView.findViewById(R.id.description_text);  
          holder.cb=(CheckBox) convertView.findViewById(R.id.cb);
          convertView.setTag(holder);  
  
      }  
  
      else  
      {
          holder=(ViewHolder)convertView.getTag();  
  
       }  
  
      holder.cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  
              @Override
              public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                  // TODO Auto-generated method stub
                   itemChecked[position] = isChecked;
                   if(itemChecked[position])
                   {
                       holder.cb.setChecked(true);
                   }
                   else
                   {
                       holder.cb.setChecked(false);
                   }
        holder.txtViewTitle.setText(title[position]);  
      holder.txtViewDescription.setText(description[position]);  
      holder.cb.setChecked(itemChecked[position]);
    holder.txtViewDescription.setFocusable(false);
    holder.txtViewTitle.setFocusable(false);
  
  return convertView;  
  
  }  
  
  }
  </code></pre>