Pregunta

Tengo una casilla de verificación en mi fila ListView que se ve así.

===========================================
[CheckBox] [TextView] [TextView] [TextView]
===========================================

El código XML está aquí

<CheckBox
    android:id="@+id/course_search_checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:clickable="false"
    android:focusable="false" />

Y ya he hecho la casilla de verificación no es posible y enfocable para que el evento de clic se pase a ListView.

Lo que quiero hacer aquí es que cuando el usuario haga clic en ListView, haga que la casilla de verificación se verifique y agregue la posición haciendo clic en ListView a una lista de matrices. Entonces, ¿cómo puedo hacer que la casilla de verificación se verifique en un OnItemClickListener de ListView?

Ayuda por favor, gracias.

¿Fue útil?

Solución

Podrías agregar este código dentro de tu OnItemClickListener:

public void onItemClick(AdapterView parent, View view, int position, long id){
   CheckBox box = (CheckBox)view.findViewById(R.id.course_search_checkbox);
   box.setChecked(true);
}

Otros consejos

Bueno, si es una sola lista de selección, entonces necesita estas API de ListView Para obtener la posición/ID:

getSelectedItemId()
getSelectedItemPosition()

Y ahora, si ha implementado su adaptador para ListView. Allí para API como bindView, getView etc (dependiendo del adaptador que haya utilizado), ha establecido el estado verificado en función de las API anteriores. Algo como

public View getView(int position, View convertView, ViewGroup parent)
{
  ListView listView = (ListView)parent; // This is the parent view group passed as argument.
  CheckBox cb = (CheckBox)convertView.findViewById(R.id.check_box);
  if(getSelectedItemPosition() == position)
     cb.setChecked(true);
  else
     cb.setChecked(true);
 }

Para la multiselección necesita a continuación API de ListView:

getCheckedItemPositions

El código para verificar la casilla de verificación será similar a la selección única (aunque no es exacto).

Nota: El código mencionado es solo como referencia. No es un código optimizado. Definitivamente necesita modificaciones. NOTA:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top