开关重新开启

时间:2015-03-14 23:34:14

标签: java android

当打开开关时,它会保持打开状态..但是当我离开活动并回到它时......它会重新开启。我希望它保持开启或关闭,具体取决于最后按下的是什么。我已尝试过以下代码,但未解决我的问题

SwitchButton.setChecked(true);
SwitchButton.setChecked(false);

2 个答案:

答案 0 :(得分:0)

如果要最小化活动然后返回到它,并且希望所有控件都保留其状态,那么请查看实现已保存的实例状态。这将在您最小化/最大化活动或旋转活动时保持控制值。没有数据永久保存到设备。示例代码: http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState

如果您要完全关闭应用程序并希望应用程序记住这些设置,请考虑使用SharedPreferences,它可用于在设备上本地保存数据。数据会一直存在,直到您的应用明确删除它或卸载应用。示例代码: http://developer.android.com/training/basics/data-storage/shared-preferences.html

答案 1 :(得分:0)

您需要做的是在您的活动中覆盖这些方法:

  @Override
  protected void onSaveInstanceState (Bundle outState){
       super.onSaveInstanceState(outState);
       outState.putBoolean("CHECKED", SwitchButton.isChecked());
  }

然后在onCreate:

 @Override
 protected void onCreate (Bundle savedInstanceState){
      super.onCreate(savedInstaceState);

      if(savedInstanceState != null){
          boolean isChecked = savedInstanceState.getBoolean("CHECKED");
          SwitchButton.setChecked(isChecked);
      }
 }