ListView con checkbox - mostrar solo chequeados

361 views
Skip to first unread message

Juan Pe

unread,
Jun 17, 2011, 9:51:28 AM6/17/11
to desarrolladores-android
Buenas, tengo un lio montado que no me aclaro. Miren, tengo un
listview el cual obtiene los datos de un Cursor y utilizo un custom
cursor adapter que hereda de un SimpleCursorAdapter. Cada una de las
filas tiene un textView y un CheckBox los cuales se inflan/cargan en
el método sobreescrito getView() de mi CustomCursorAdapter. Bien, la
lista se muestra bien y puedo chequear correctamente las filas que me
interesen. El problema lo tengo porque tengo que implementar un boton
que me haga un filtro de los elementos que estan chequeados y muestre
solo estos. También tengo otro botón que vuelva a mostrar todos los
campos tal y como estaban al principio respetando los que el usuario
ya tenía chequeados. Bien, pues estas 2 últimas opciones me resultan
imposible de implementar. No sé cómo puedo repintar la lista,
filtrando por chequeados o no. Podría alguién ayudarme con esto?
Gracias, un saludo.

Martin Alcubierre

unread,
Jun 18, 2011, 3:25:30 AM6/18/11
to desarrollad...@googlegroups.com
A mi se me ocurre:

1) Montar un onClick en el chequeo de la lista que actualice el check en base de datos (si lo ho haces ya...), despues opcionalmente un notifyDataSetChanged para actualizar la lista (si quieres que desaparezcan los desmarcados, por ejemplo sería el caso)
2) El primer boton que cierre el cursor actual si es necesario (primera vez o haya el cursor con filtro) y vuelva a abrirlo pero sin filtro, y un notifyDataSetChanged
3) El segundo boton que cierre el cursor actual si es necesario (primera vez o haya cursor sin filtro) y vuelva a abrirlo pero sin filtro, y un notifyDataSetChanged

Habrá otras maneras mejores, claro...

2011/6/17 Juan Pe <jpem...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.


Juan Pe

unread,
Jun 20, 2011, 4:08:18 AM6/20/11
to desarrolladores-android
Claro, yo estaba intentando hacerlo sin tener que crear ningún campo
en las tablas de la base de datos para almacenar si ese campo/fila
está o no seleccionado. Quizás este sea el camino más fácil pero
imagino que no el más eficiente.

Yo lo que quería era poder crear algún método showOnlyChecked() y a la
inversa y jugar con los métodos sobreescritos del getView() o el
bind() o el que fuera de mi CustomCursorAdapter.

Y de verdad, por este camino sigo atrancado...estoy probando con un
tipo de listas que se puede formatear como CHOICE_MODE_MULTIPLE . Pero
de ahí no paso, no sé cómo puedo filtrar la lista por chequeados o no
y repintarla.

Estaría bien una ayudita, si necesitan que ponga algo de código lo
subo.

Un saludo a todos y gracias.



On 18 jun, 09:25, Martin Alcubierre <martin.alcubie...@gmail.com>
wrote:
> A mi se me ocurre:
>
> 1) Montar un onClick en el chequeo de la lista que actualice el check en
> base de datos (si lo ho haces ya...), despues opcionalmente
> un notifyDataSetChanged para actualizar la lista (si quieres que
> desaparezcan los desmarcados, por ejemplo sería el caso)
> 2) El primer boton que cierre el cursor actual si es necesario (primera vez
> o haya el cursor con filtro) y vuelva a abrirlo pero sin filtro, y
> un notifyDataSetChanged
> 3) El segundo boton que cierre el cursor actual si es necesario (primera vez
> o haya cursor sin filtro) y vuelva a abrirlo pero sin filtro, y
> un notifyDataSetChanged
>
> Habrá otras maneras mejores, claro...
>
> 2011/6/17 Juan Pe <jpemc...@gmail.com>

Martin Alcubierre

unread,
Jun 21, 2011, 4:29:03 PM6/21/11
to desarrollad...@googlegroups.com
A ver exigente :), encima lo quieres bonito y que no consuma bateria...


No se.

Quizás asociado a cada fila poniento un Tag con el indicador que tienes y en el getview marcar o no la visibilidad del listview en función del contenido del Tag..

La verdad es que en mi ejemplo yo no lo tengo igual, en la clase que heredo de la simplecursor adapter tengo sobrecargados el NewView y el BindView, y no el getView (de hecho pensaba que solo funcionaba con los BaseAdapters). Se que el BindView se ejecuta cada vez que muestro los datos, pero no se si con el getview funcionará igual...

Saludos.


2011/6/20 Juan Pe <jpem...@gmail.com>
Reply all
Reply to author
Forward
0 new messages