保存多个复选框状态

问题描述:

我已经使用此代码获取用户返回时保存的一个复选框,但我需要在整个应用程序中有很多复选框。我相信最好的办法不是复制和粘贴这段代码,但似乎无法找到它的内容。保存多个复选框状态

什么我会添加或改变,使这个工作说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); 
} 

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

或者创建自己(的SQLite等)的模式,并坚持下去。无论如何,每个独特的复选框都需要在持久性存储中拥有唯一的ID。

您可以将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...