簡體   English   中英

如果退出應用程序,Android的復選框保存狀態

[英]Android saving state of checkbox if exit app

我有5個復選框,當它們被單擊時,它們使用onCheckedChangeListener將抽象類中的布爾值設置為true或false。 例:

checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener(){

            @Override
            public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) 
            {
                if(isChecked)
                {
                    CheckboxData.checked = true;
                }
                else if(!isChecked)
                {
                    CheckboxData.checked = false;
                }

            }

        });

但是,當我離開應用程序並返回時,不再單擊復選框,但是布爾值仍然為true。 如何使應用程序記住復選框是否已單擊。 我應該只檢查主要活動onCreate中的布爾值,然后將復選框設置為選中還是不選中,或者是否有更好/更快的方法使應用程序記住復選框狀態?

剛剛在主要活動的onCreate方法中添加了此代碼:

      if(CheckboxData.checked)
    {
        CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox);
        checkbox.setChecked(true);
    }

卻什么也沒做

Activitydestroyed請檢查復選框狀態是否為true,並將復選框狀態添加到shared Preference

     @Override
    public void onDestroy() {

    if(CheckboxData.checked){
     SharedPreferences prefs = getSharedPreferences("private preference", Context.MODE_PRIVATE);
            prefs.edit()
                .putBoolean("CheckboxData",true)
                .commit();
   }
    super. onDestroy();

   }

Activity重新啟動時,在onCreate中優先檢查復選框狀態,如果為true,則啟用該復選框

  SharedPreferences prefs = getSharedPreferences("private preference", Context.MODE_PRIVATE);

  boolean isChecked = prefs.getBoolean("CheckboxData",false);
  if(isChecked)
  checkBoxView.setChecked(true) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM