Android 如何处理OnPause和OnResume状态下的切换按钮状态
我面临的问题与切换按钮状态上的恢复和暂停状态 活动-首先用户切换按钮,然后返回活动-B,然后返回活动-A,然后我希望切换按钮处于打开状态而不是关闭状态,如何在android中处理此状态。默认情况下,活动处理其具有id属性的组件状态 如果不是这样,您可以使用onSaveInstanceState和onRestoreInstanceState手动处理组件状态: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) {
@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();
}
}