簡體   English   中英

如何在android中保存動態創建的復選框的狀態

[英]how to save state of dynamically created checkbox in android

我正在動態創建復選框的數量,我已經做了一些邏輯,一次只選擇一個。 現在我只想保存所選復選框的狀態,當我從下一個屏幕返回時應該選擇它。 下面我已經給出了復選框的代碼

cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {


            if (isChecked) {                    
                if (hash.size() > 0) {
                    hash.get("1").setChecked(false);
                }                                       

                hash.put("1", buttonView);
                selAnyone = true;
            } else {
                hash.clear();
                selAnyone = false;

            }

編輯:

每當您導航到當前活動到下一個活動時,請保存所選復選框的ID,如下所示

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
      SharedPreferences.Editor editor = preferences.edit();
      editor.putString("checkboxid","1");
      editor.commit();

或者只是通過Intent發送

yourintent.putExtra("checkboxid","1"); // selected checkbox id

接着

如果您使用的是intent而不是sharedpreferences,則在導航回當前屏幕時會添加相同的額外內容。

首先使用SharedPreferences:

在活動的onCreate中檢查pref是否包含復選框ID

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  String name = preferences.getString("Name",null);  // if the  preference doesn't exist it returns null

if(name!=null)
{
 int checkedid=Integer.parseInt(name);
checkbox[checkid].setChecked(true);
}

同樣的邏輯遵循for intent額外也檢查checkboxid,如果它不存在不檢查任何東西,如果它存在檢查帶有assoicated id的復選框


使用SharedPreferences

例:

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  SharedPreferences.Editor editor = preferences.edit();
  editor.putString("checkboxid","1");
  editor.commit();

得到這樣的

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  String name = preferences.getString("Name","checkboxid");

暫無
暫無

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

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