Home Menu

Menu



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


 
Herramientas
  #1  
Viejo 31/07/13, 18:19:38
Avatar de JMorant
JMorant JMorant no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: jul 2013
Mensajes: 4
Modelo de smartphone: Samsung Galaxi SIII mini
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de JMorant
JMorant JMorant no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: jul 2013
Mensajes: 4
Modelo de smartphone: Samsung Galaxi SIII mini
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de JMorant
JMorant JMorant no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: jul 2013
Mensajes: 4
Modelo de smartphone: Samsung Galaxi SIII mini
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
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   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 01:57:07 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007