2012-02-22 151 views
0

我已經使用此代碼獲取用戶返回時保存的一個複選框,但我需要在整個應用程序中有很多複選框。我相信最好的辦法不是複製和粘貼這段代碼,但似乎無法找到它的內容。保存多個複選框狀態

什麼我會添加或改變,使這個工作說10或更多的複選框?

@Override 
public void onPause() { 
    super.onPause(); 
    save(mCheckBox.isChecked()); 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    mCheckBox.setChecked(load()); 
} 

private void save(final boolean isChecked) { 
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putBoolean("check", isChecked); 
    editor.commit(); 
} 

private boolean load() { 
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); 
    return sharedPreferences.getBoolean("check", false); 
} 

回答

0
private void save (final String checkboxId, final boolean isChecked) { 
    // shared prefs yadda 
    editor.putBoolean(checkboxId, isChecked).commit(); 
} 

或者創建自己(的SQLite等)的模式,並堅持下去。無論如何,每個獨特的複選框都需要在持久性存儲中擁有唯一的ID。

0

您可以將CheckBoxes存儲在數組中。

@Override 
public void onPause() { 
    for (int i = 0; i < checkBoxArr.length; i++) { 
     save(i, checkBoxArr[i].isChecked()); 
    } 
} 

private void save(int index, boolean isChecked) { 
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putBoolean("check" + index, isChecked); 
    editor.commit(); 
} 

// etc...