entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Guardar el estado de un botón en Android

Que tal, no se si me pudieran ayudar con esto:
Quiero guarda el estado de un botón(isSelected) por medio de Shared Preference pero no sé realmente como guarda cuando está deseleccionado:

//Aquí es para recibir el valor de Shared Preference
 b = (Button) findViewById(R.id.prueba);

       sharedpreferences = PreferenceManager
                .getDefaultSharedPreferences(getApplicationContext());
        b.setSelected(sharedpreferences.getBoolean("button", false));

Aquí es donde guardo el estado del botón, le eh creado un selector para cuando se clickee sobre él cambie de imagen

b.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                v.setSelected(!v.isSelected());
                if(v.isSelected()){
                    sharedpreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                    SharedPreferences.Editor editor = sharedpreferences.edit();
                    editor.putBoolean("button",v.isSelected());
                editor.commit();
                    Toast.makeText(MainActivity.this,"Está seleccionado el botón y se guarda en el Teléfono",Toast.LENGTH_LONG).show();
                }else{
                      //Lo que sea
                }

            }
        });

Obviamente así me guarda solamente el botón seleccionado y no cuando se deselecciona, quisiera saber como hacer para que guarde el estado independientemente si está seleccionado o no.
Gracias.

1 Respuesta

1voto

x4mp73r Puntos13390

Hola @userTemp verás yo usé uno similar a como se usa en un ToggleButton, solo cambié a Button :p así:

//Aquí recibes
preferences = PreferenceManager
                .getDefaultSharedPreferences(getApplicationContext());

tuBoton.setSelected(preferences.getBoolean("button", false));

//Aquí lo guardas en tu botón
tuBoton.setOnClickListener(new Button.OnClickListener() {

            public void onClick(View v) {
                v.setSelected(!v.isSelected());
                SharedPreferences sharedPreferences = PreferenceManager
                        .getDefaultSharedPreferences(getApplicationContext());
                SharedPreferences.Editor editor = sharedPreferences.edit();
                editor.putBoolean("button", tuBoton.isSelected());
                editor.commit();
                if (v.isSelected()){
                    Toast.makeText(MainActivity.this,"seleccionado",Toast.LENGTH_LONG).show();
                } else
                {Toast.makeText(MainActivity.this,"deseleccionado", Toast.LENGTH_LONG).show();}
            }
        });

Lo único que modifiqué fue cambiar la condición de

isSelect

Saludos cordiales

0voto

userTemp comentado

¡Muchas gracias!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta