Hola a todos, les comento soy principiante programando en Android y les traigo la siguiente consulta. Tengo 32 Checkbox declarados y también los declare en un Array para que me facilite algunas tareas. Lo que quisiera hacer es que al cerrar la aplicación no se borren los que se hayan tildado. La cuasi-solución que encontré sería con SharedPreferences:
@Override
public void onPause() {
super.onPause();
for(i=0;i<=array.length;i++){
save(array[i].isChecked());
}
}
@Override
public void onResume() {
super.onResume();
for(i=0;i<=array.length;i++){
array[i].setChecked(load());
}
}
private void save(final boolean isChecked) {
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("check", isChecked);
editor.commit();
}
private boolean load() {
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
return sharedPreferences.getBoolean("check", false);
}
El problema es que así no funciona. Sólo me funciona si en vez de poner el bucle con el array, pongo cada uno de los nombres de los Checkbox, así: "save(elemento1.isChecked());", y creo que ensucia mucho el código dado que son 32 Checkbox solo en esta activity y tengo varias más (con otros elementos).
Bueno espero no sea dificil o engorroso, y desde ya muchas gracias!
Pablo