Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 31/07/13, 18:19:38
Array

[xs_avatar]
JMorant JMorant no está en línea
Usuario novato en la web
 
Fecha de registro: jul 2013
Mensajes: 4
Modelo de smartphone: Samsung Galaxi SIII mini
Tu operador: Yoigo
ListView Con checkbox

Hola a todos, soy nuevo por aqui y queria ver si alguien me puede echar una mano con un problemilla que tengo porque estoy desesperado.

Tengo una aplicación que realiza una búsqueda en una base de datos a partir de una palabra clave que pone el usuario y muestra la información en un listview.

Básicamente ordena los datos a partir de una plantilla que he generado yo en un xml mediante un simplecursoradapter.

El problema viene que cuando selecciono uno de los checkbox de la listview, solo interpreta que funciona el primer checkbox, ignorando si el resto de los checks están o no marcados.

aqui pongo el codigo donde creo que tengo el error:

public void AnyadirProdLista() {
// TODO Auto-generated method stub
ListView lista = (ListView) view.findViewById(R.id.ListaProds);

int contador = lista.getCount();

for (int i = 0; i < contador; i++){
CheckBox check = (CheckBox) lista.findViewById(R.id.checkLista);
if (check.isChecked()){
Toast.makeText(getActivity(), "a" + i, Toast.LENGTH_LONG).show();
}
}
}

También adjunto una imagen del programa, en el cual se ve el listview.

Listaproblema.jpg

Gracias por anticipado por vuestra ayuda
Responder Con Cita


  #2  
Viejo 31/07/13, 19:35:28
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
El problema está aquí:

CheckBox check = (CheckBox) lista.findViewById(R.id.checkLista);

Haciendo esto SIEMPRE va a encontrar sólo el primer elemento que esté en el ListView que se llame checkLista.

Yo lo que hago es establecer un CheckedChange en el que cuando marco un CheckBox añado el campo que me interesa a una lista, y cuando lo desmarco lo elimino de la lista. Al final cuando pulsas el OK recorro esa lista que son los elementos marcados.

Haciéndolo como quieres tú tendrías que recorrer el ListView, buscando todos los elementos que se llamen checkLista, y además haciéndolo de forma recursiva. Usando getChildCount() y getChildAt(posicion). Un lío. Mucho más fácil la opción que te he puesto antes.
Responder Con Cita
  #3  
Viejo 31/07/13, 19:42:49
Array

[xs_avatar]
JMorant JMorant no está en línea
Usuario novato en la web
 
Fecha de registro: jul 2013
Mensajes: 4
Modelo de smartphone: Samsung Galaxi SIII mini
Tu operador: Yoigo
Vaya, gracias, pero me podrías explicar un poco mejor como hacer esto que me indicas? en android soy un poco novato todavía. Si pudieses hacerme un pequeño ejemplo o una explicación rápida de como hacer esto me iría de fábula.

Por lo que he entendido sería poner un evento checkedchanged y añadir los valores que me interesen a una "lista virtual" no?
Responder Con Cita
  #4  
Viejo 01/08/13, 13:09:37
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Si, es exactamente eso.

En el getView() del BaseAdapter tienes que añadir el evento.
Responder Con Cita
  #5  
Viejo 01/08/13, 13:45:38
Array

[xs_avatar]
JMorant JMorant no está en línea
Usuario novato en la web
 
Fecha de registro: jul 2013
Mensajes: 4
Modelo de smartphone: Samsung Galaxi SIII mini
Tu operador: Yoigo
Con el baseAdapter te refieres a la clase para gestionar la base de datos? porque en principio no uso un método getView().

Como ya dije soy nuevo en android y voy bastante pez con lo de las clases y los metodos nativos de android... todo lo que llevo hecho es básicamente gracias a tutoriales que adapto a mis necesidades jejeje.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 08:31:25 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /