Philip Sy Philip Sy - 4 months ago 66
Android Question

Android - ToggleButton setChecked and setSelected not working

What I am trying to do is checking the

SharedPreferences
if the volume and vibration is
on
or
off
.
If it is on the
ToggleButton
should be set to
on
, else,
off
.

I already tried using
setChecked()
and
setSelected()
on
ToggleButton
s but it didn't change the
TogggleButton
s' state.

I also tried initializing a variable for the
true
and
false
just to make sure but still doesn't work.

What seems to be the problem?

optionsDB = getSharedPreferences(table, 0);

String volReturned = optionsDB.getString("volume", "Couldn't load data");
String vibReturned = optionsDB.getString("vibration", "Couldn't load data");
Toast.makeText(this, "Vol: "+volReturned+" Vib: "+ vibReturned, Toast.LENGTH_LONG).show();
boolean boolT = true;
boolean boolF = false;
if (volReturned=="On"){
/*tbtnvol.setChecked(true);*/
tbtnvol.setSelected(boolT);
}else{
tbtnvol.setSelected(boolF);
}
if (vibReturned=="On"){
tbtnvib.setSelected(boolT);
}else{
tbtnvib.setSelected(boolF);
}

Answer

Instead of == use .equals() for string comparison..

Try this,

if (volReturned.equals("On")){
        /*tbtnvol.setChecked(true);*/
        tbtnvol.setSelected(boolT);
    }else{
        tbtnvol.setSelected(boolF);
        }
    if (vibReturned.equals("On")){
        tbtnvib.setSelected(boolT);
    }else{
        tbtnvib.setSelected(boolF);
        }