Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何处理OnPause和OnResume状态下的切换按钮状态_Android_Onresume_Onpause_Android Togglebutton_Activity State - Fatal编程技术网

Android 如何处理OnPause和OnResume状态下的切换按钮状态

Android 如何处理OnPause和OnResume状态下的切换按钮状态,android,onresume,onpause,android-togglebutton,activity-state,Android,Onresume,Onpause,Android Togglebutton,Activity State,我面临的问题与切换按钮状态上的恢复和暂停状态 活动-首先用户切换按钮,然后返回活动-B,然后返回活动-A,然后我希望切换按钮处于打开状态而不是关闭状态,如何在android中处理此状态。默认情况下,活动处理其具有id属性的组件状态 如果不是这样,您可以使用onSaveInstanceState和onRestoreInstanceState手动处理组件状态: @Override public void onSaveInstanceState(Bundle savedInstanceState) {

我面临的问题与切换按钮状态上的恢复和暂停状态

活动-首先用户切换按钮,然后返回活动-B,然后返回活动-A,然后我希望切换按钮处于打开状态而不是关闭状态,如何在android中处理此状态。

默认情况下,活动处理其具有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);
}

您是否在活动中调用了override onResume和onPause?如果是这样,请调用super.onResume和super.onPause?是的,我实现了这些方法。在关闭和重新打开应用程序后,是否要使用相同的切换按钮状态?如果是这样,请尝试使用共享首选项Sill integrated共享首选项它现在可以正常工作@MangaldeepPannuSharedPreferences在这种情况下是不合适的,如果您使用了多个活动实例,它将导致意外行为,但它现在可以正常工作,如果它产生任何问题,那么我将更改代码@Mosius
 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();
    }

}