Как обрабатывать состояние ToggleButton в состояниях OnPause и OnResume - PullRequest
0 голосов
/ 06 января 2019

У меня проблема с состоянием кнопки переключения в состояниях onResume() и onPause().

Активность - A (сначала пользователь включит кнопку), затем вернитесь к Активности - B, затем он вернется к Активности - A, затем я хочу, чтобы кнопка ВКЛЮЧЕНА, а не ВЫКЛ, как обрабатывать это состояние в Android.

Ответы [ 2 ]

0 голосов
/ 06 января 2019
 toggle_relative.setOnToggleChanged(new ToggleButton.OnToggleChanged() {
        @Override
        public void onToggle(boolean on) {
            if (on == true){
                SharedPreferences.Editor editor = preferences.edit();
                editor.putBoolean("toggle_relative", true); // value to store
                editor.commit();
                Toast.makeText(getContext(),"Relatives will be notified in case of accidental situation",Toast.LENGTH_LONG).show();
            }else {
                SharedPreferences.Editor editor = preferences.edit();
                editor.putBoolean("toggle_relative", false); // value to store
                editor.commit();
            }
        }
    });







  @Override
public void onResume() {
    super.onResume();

    boolean boll_toggle_relative = preferences.getBoolean("toggle_relative", false);  //default is true
    if (boll_toggle_relative == true)
    {
        toggle_relative.setToggleOn();
    }
    else
    {
        toggle_relative.setToggleOff();
    }

}
0 голосов
/ 06 января 2019

По умолчанию Activity обрабатывает состояние своих компонентов, которое имеет атрибут id.

Если это не так, вы можете использовать onSaveInstanceState и onRestoreInstanceState для ручной обработки состояния компонентов:

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);

  savedInstanceState.putBoolean("Toggle1", toggle.isChecked());
  // etc.
}

И для восстановления состояния:

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
  super.onRestoreInstanceState(savedInstanceState);

  boolean toggle1State = savedInstanceState.getBoolean("Toggle1");
  toggle1.setCheched(toggle1State);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...