al marcar un elemento en la vista de lista personalizada, ¿se selecciona otro automáticamente?

Verificando un elemento en la vista de lista personalizada y otro se selecciona en Android. Estoy usando la vista de lista de adaptadores personalizados con casilla de verificación.

Estoy usando casillas de verificación en la vista de lista. y estoy usando el siguiente código para el recuento de casillas de verificación. es decir, cuántas casillas de verificación están seleccionadas.

final int listItemCount = screenList.getChildCount();
for (int i = 0; i < listItemCount; i++) {
    CheckBox cbox = (CheckBox) ((View) screenList.getChildAt(i))
            .findViewById(R.id.checkBox);
    if (cbox.isChecked()) {
        count++;
    }
}

Pero mientras me estoy poniendo count=listItemCount hay algunos números que no se muestran marcados en la vista de lista.

preguntado el 10 de mayo de 11 a las 13:05

2 Respuestas

Tengo un problema similar con el adaptador de lista. Cuando se llama a getview () para cada elemento de vista personalizado (tiene una casilla de verificación) en la lista, getview recibe la posición y el objeto de vista.

Lo que estoy viendo durante la depuración es que si la lista muestra 5 elementos a la vez, entonces, para la posición 0, la identificación del obj de la vista es 830173183032 y, a continuación, para la sexta posición, la identificación del obj de la vista es la misma, es decir, 6.

Entonces, cuando marco la casilla de verificación del elemento 0 y luego me desplazo hacia abajo, veo que la casilla de verificación del sexto elemento también está marcada.

el código era de http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

contestado el 11 de mayo de 11 a las 18:05

Para acceder al que espera, haga algo como esto (asumiendo que está usando ListActivity:

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);

    // this will give you the widget that was selected.
    Widget widget = widgetAdapter.getItem(position);

}

Si esto no resuelve su problema, muestre algún código para que podamos echarle un vistazo.

contestado el 10 de mayo de 11 a las 17:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.