Seleccionar toda la casilla de verificación en android listview

En mi aplicación, intenté crear una lista con varias casillas de verificación.

Para eso probé un ListView con android.R.layout.simple_list_item_multiple_choice para la opción múltiple en ListView .

Mi ListView en XML como, ..

 <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="468dp" android:choiceMode="multipleChoice" android:divider="#b5b5b5" android:dividerHeight="1dp" > 

Y yo utilizo un CheckBox para seleccionar / deselect todo el CheckBox en el ListView como

  <CheckBox android:id="@+id/select_all" android:layout_width="120dp" android:layout_height="wrap_content" android:layout_column="2" android:textSize="18dp" android:text="Select all" /> 

Y código java como, ..

 selectall.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub int size = 0; boolean isChecked = selectall.isChecked(); if (isChecked == true) { size = getListView().getCount(); for (int i = 0; i <= size; i++) l1.setItemChecked(i, true); } else if(isChecked==false) { size = getListView().getCount(); for (int i = 0; i <= size; i++) l1.setItemChecked(i, false); } } }); 

Aquí he asignado el l1 como mi ListView . Ahora mi casilla de verificación Seleccionar todo funciona muy bien para Seleccionar / Deseleccionar todas las casillas de verificación en el ListView .

Pero, si deselecciono uno de los elementos después de hacer clic en seleccionar todos, no es des-comprobación ..

Y si selecciono todas las casillas de verificación de la lista de manera manual, significa que la casilla de verificación Seleccionar todo CheckBox debe comprobarse automáticamente.

Utilicé los siguientes códigos para ListAdapter

 ArrayAdapter<String> adapter1 = new ArrayAdapter<String> (this,Android.R.layout.simple_list_item_multiple_choice,list); setListAdapter(adapter1); l1=getListView(); 

Estoy tratando de lograr esta solución ..

    One Solution collect form web for “Seleccionar toda la casilla de verificación en android listview”

    Puede utilizar un HashMap o una Lista de laObjectRow para realizar un seguimiento de qué sheckbox está marcado con un booleano.

    Entonces cuando haces clic en checkAll actualizas todo boolean en tu lista a true y haces yourAdapter.notifyDataSetChanged ();

    Por supuesto en su adaptador (baseadapter por ejemplo) usted utiliza la lista de HashMap / en GetView para init las células.

     if(list.get(position).isChecked()){ cellHolder.checkBox.setChecked(true); } else{ cellHolder.checkBox.setChecked(false); } 

    Todos los booleanos están en true así que todo el checkBox se verá (la misma lógica va para uncheck)

    Espero que ayude buena suerte

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.