Как сохранить состояние выбора вкл / выкл toogleButton? - PullRequest
3 голосов
/ 12 сентября 2011

Здравствуйте, я реализовал приложение на основе выбора toggleButton.но в то время как я закрываю это приложение и затем снова открываю его, оно получает выбор по умолчанию, который «выключен».Так может любой собеседник сказать mw, что мне нужно, чтобы сохранить состояние выбора toogleButton и выполнить какое-то действие на основе этого состояния выбора toggleButton.,,Спасибо.

Ответы [ 3 ]

13 голосов
/ 12 сентября 2011

Использовать SharedPreferences.

tg = (ToggleButton) findViewById(R.id.toggleButton1);

tg.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {

    if((tg.isChecked()))
        {
                SharedPreferences.Editor editor = preferences.edit();
                editor.putBoolean("tgpref", true); // value to store
                editor.commit();
        }
        else
        {
                SharedPreferences.Editor editor = preferences.edit();
                editor.putBoolean("tgpref", false); // value to store
                editor.commit();
        }
    }
});

А вот как получить значения:

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean tgpref = preferences.getBoolean("tgpref", true);  //default is true
if (tgpref = true) //if (tgpref) may be enough, not sure
{
  tg.setChecked(true);
}
else
{
  tg.setChecked(false);
}

Я не проверял этот код, но посмотрите на некоторые примеры в сети, это просто!

3 голосов
/ 18 мая 2013

Лучший способ, вы можете установить TGBUTTON же

основной экран

Intent intent = new Intent(this, Something.class);
intent.putExtra(BOOLEAN_VALUE, Boolean.valueOf((tvConfigBoolean.getText().toString())));
            startActivity(intent);

экран что-то

Bundle bundle = getIntent().getExtras();
tbtConfigBoolean.setChecked((bundle
                    .getBoolean(MainActivity.BOOLEAN_VALUE)));

и сохранить состояние

editor.putBoolean("BooleanKey", tbtConfigBoolean.isChecked());
        editor.commit();

удачи

3 голосов
/ 12 сентября 2011

Используйте SharedPreferences, как предложил erdomester, но я немного изменил его код. Там есть некоторые ненужные условия.

tg = (ToggleButton) findViewById(R.id.toggleButton1);

tg.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {
       SharedPreferences.Editor editor = preferences.edit();
       editor.putBoolean("tgpref", tg.isChecked()); // value to store
       editor.commit();
    }
});

А вот как получить значения:

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean tgpref = preferences.getBoolean("tgpref", true);  //default is true

tg.setChecked(tgpref);
...