2012-02-22 10 views
0

私はこのコードを使用して、ユーザーが戻ったときに保存された1つのチェックボックスを取得しましたが、アプリケーション全体で多くのチェックボックスが必要です。私はこのコードをコピーして貼り付けるのが最善の方法ではないが、それが何であるかを見つけることができないと確信している。複数のチェックボックスの状態を保存する

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

チェックボックスを配列に格納することができます。

@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... 
関連する問題