如何在OnPause和OnResume状态下处理ToggleButton状态

时间:2019-01-06 05:42:36

标签: android onresume onpause android-togglebutton activity-state

我遇到onResume()onPause()状态的切换按钮状态的问题。

活动-A(第一个用户将按钮切换为ON),然后返回到活动-B,然后它将返回活动-A,然后我要切换按钮为ON而不是OFF,如何在android中处理此状态。

2 个答案:

答案 0 :(得分:1)

默认情况下,Activity处理其具有id属性的组件状态。

如果不是那样,则可以使用onSaveInstanceStateonRestoreInstanceState手动处理组件状态:

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

答案 1 :(得分:0)

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

}
相关问题