维持检查并取消选中标记甚至应用程序关闭

时间:2013-11-22 05:46:56

标签: android

我想制作4个不同的按钮作为检查和取消检查,即使在应用程序关闭后,我正在使用共享首选项,但我无法维持状态,它让我感到困惑。任何人都可以帮助我。

谢谢

preferences1 = PreferenceManager
            .getDefaultSharedPreferences(Notification_Dashboard.this);
    Boolean state_chk = preferences1.getBoolean("key", false);
    System.out.println("state_chk" + state_chk);

    if (state_chk == true) {
        msg_viewed = "0";
        message_view.setBackgroundResource(R.drawable.notif_uncheck);
        preferences1.edit().putBoolean("key", false).commit();
    }

    else {
        msg_viewed = "1";
        message_view.setBackgroundResource(R.drawable.notif_checked);
        preferences1.edit().putBoolean("key", true).commit();
    }

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

对于您的复选框,定义checkedchanged listner,如下所示:

  yourcheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                if (isChecked) {
                     saveCheckBox("First",true);

                } else {
                     saveCheckBox("First",false);
                }

            }
        });

在共享偏好中保存复选框值

 public void saveCheckBox(String key, boolean isChecked){
   SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences();
   SharedPreferences.Editor editor = prefs.edit();

    editor.putBoolean(key,isChecked);
    editor.commit();
 }

获取偏好值

 public boolean getCheckBoxState(String key){
       SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences();
       prefs.getBoolean(key, false);
 }

在您的活动onCreate()方法中尝试获取共享偏好值并设置复选框选中或取消选中,如下所示:

   Boolean isCheck=getCheckBoxState("First");
   if(isCheck)
   {
      yourcheckbox.setChecked(true);
    }
   else
    {
        yourcheckbox.setChecked(false);
    } 

我希望这会对你有所帮助。

感谢。