Está en la página 1de 2

CURSO DE DESARROLLO DE APLICACIONES ANDROID

Tema 7. Menús y ActionBar

FAQ
TEMA 7. MENÚS Y ACTIONBAR

FAQ

Recordar estados de los checkboxes de un submenú contextual de una


ListView

Los submenús contextuales se construyen en cada llamada, por motivos de eficiencia (para
evitar renderizar y almacenar previamente demasiados menús memoria), y porque los menús
contextuales suelen depender del punto donde sean invocados. Por lo tanto, no queda más
opción que almacenar el estado de las opciones que sean seleccionables en dicho submenú
contextual, en un objeto SharedPreferences, o bien, si no se necesita almacenar el estado
una vez se cierre la aplicación, mediante variables globales tipo booleano, por ejemplo. Se
podrá implementar un código similar a este:

En onCreateContextMenu():

if (bChkContexto1)
menu.findItem(R.id.contexto1).setChecked(true);
else
menu.findItem(R.id.contexto1).setChecked(false);

(igual para el resto de opciones)

En onContextItemSelected():

switch (item.getItemId()) {
case R.id.contexto1:
if (!bChkContexto1) {
bChkContexto1 = true;
item.setChecked(true);
} else {
bChkContexto1 = false;
item.setChecked(false);
}
return true;
...
}

donde bChkContexto1 es una variable miembro de la actividad, booleana.

CURSO DE DESARROLLO DE APLICACIONES ANDROID 2

También podría gustarte