So che questa domanda è stata ripetuta più volte, ma ancora non sono stato in grado di trovare un suggerimento che mi aiuti veramente. La casella di controllo è deselezionata ogni volta che si scorre l'elenco verso il basso. Sì, sto usando un array booleano per memorizzare i valori, ma questo non risolve il problema. Ecco il mio codice. Si prega di suggerire una soluzione per questo. Grazie.CheckBox si deseleziona durante lo scorrimento in un listview personalizzato
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;
}
}
@Zapi che risolto il problema. Ero stupido Grazie. – Dinesh
Ho aggiornato il codice un po '. Probabilmente non funziona davvero :) – zapl
mCheckedState = new boolean [objects.size()]; In questa linea cosa è l'oggetto ?? –