Pregunta sobre android, checkbox – Guardar estados de casilla de verificación

4

Soy muy nuevo y apreciaría si alguien pudiera demostrar el código requerido para guardar una cantidad de estados de casillas de verificación en Java dentro de una aplicación de Android.

Digamos que tengo una lista de herramientas (diez o más) que un usuario necesita para completar una tarea y quisiera que puedan marcar cada una y guardar esos datos (dentro de la aplicación, no sQlite) para que se registren cuando Vuelven a la aplicación.

Tengo una idea de cómo se hace esto pero realmente siento que necesito ver el código para entenderlo correctamente.

<code>import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.CheckBox;

public class CheckBoxTest extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.checkboxtest);
    CheckBox cb1,cb2,cb3,cb4;

    cb1 = (CheckBox)findViewById(R.id.checkBox1);
    cb2 = (CheckBox)findViewById(R.id.checkBox2);
    cb3 = (CheckBox)findViewById(R.id.checkBox3);
    cb4 = (CheckBox)findViewById(R.id.checkBox4);   
     }
 }
</code>
resuelto tu problema Shankar Agarwal

Tu respuesta

2   la respuesta
0

probé lo anterior, pero después de reiniciar o reiniciar mi dispositivo Android, perdería el estado marcado del menú de opciones. Yo diría, para resolver el problema:

Tienes 2 opciones:

Obtener valor de preferencia compartido durante el ciclo de vida de la actividad.

Llamada.clear antes de.commit

Mira mi respuesta

Menú comprobable persistente de Android en widget personalizado después de reiniciar Android

11

aredPreference. Guardar el estado de cada casilla de verificación en SharedPreference

// Para obtener valor de SharedPreference

<code>SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
boolean value = preferences.getBoolean("KEY", false);
String value = preferences.getString("KEY");
</code>

// Para guardar el valor en SharedPreference

<code>SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("KEY", value);
editor.putBoolean("KEY", value);
editor.commit();
</code>

Míralo pocos cambios menores ::::

<code>public class CheckBoxTest extends Activity implements OnCheckedChangeListener {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.favorites_add_button);
            CheckBox cb1,cb2,cb3,cb4;

            cb1 = (CheckBox)findViewById(R.id.checkBox1);
            cb1.setChecked(getFromSP("cb1"));
            cb1.setOnCheckedChangeListener(this);
            cb2 = (CheckBox)findViewById(R.id.checkBox2);
            cb2.setChecked(getFromSP("cb2"));
            cb2.setOnCheckedChangeListener(this);
            cb3 = (CheckBox)findViewById(R.id.checkBox3);
            cb3.setChecked(getFromSP("cb3"));
            cb3.setOnCheckedChangeListener(this);
            cb4 = (CheckBox)findViewById(R.id.checkBox4);
            cb4.setChecked(getFromSP("cb4"));
            cb4.setOnCheckedChangeListener(this);

        }
        private boolean getFromSP(String key){
        SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
        return preferences.getBoolean(key, false);
        }
        private void saveInSp(String key,boolean value){
        SharedPreferences preferences = getApplicationContext().getSharedPreferences("PROJECT_NAME", android.content.Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putBoolean(key, value);
        editor.commit();
        }
        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {
            // TODO Auto-generated method stub
            switch(buttonView.getId()){
            case R.id.checkBox1:
            saveInSp("cb1",isChecked);
            break;
            case R.id.checkBox2:
            saveInSp("cb2",isChecked);
            break;

            case R.id.checkBox3:
            saveInSp("cb3",isChecked);
            break;

            case R.id.checkBox4:
            saveInSp("cb4",isChecked);
            break;
            }

        }
        }
</code>
Brillante, muchas gracias por tu ayuda y paciencia. Me queda mucho por aprender pero esta fue una gran ayuda para mí ahora puedo ver lo que está pasando. DarkLion

Preguntas relacionadas