Search code examples
androidstatesharedpreferencestogglebutton

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 ToggleButtons but it didn't change the TogggleButtons' 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);
        }

Solution

  • 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);
            }