2012-01-12 4 views
1

私はいくつかのチェックボックスのIDを持つ配列を持っています。 onResume私は、これらのチェックボックスのブール値がビューを適合させるためにtrueまたはfalse(ループを使用)であるかどうかをチェックしたいと思います。ここに私のコードがあります。それはすべての値がfalseであることを私に知らせるので、うまくいきません。誰かがなぜこれが起こっているのか教えてもらえますか? Android:オブジェクトのSharedPreferencesを動的に取得する方法

ArrayList<Integer> boxArray = new ArrayList<Integer>(); 
boxArray.add(R.id.boxA); 
boxArray.add(R.id.boxB); 
boxArray.add(R.id.boxC); 

そしてonReturn

SharedPreferences preferences = 
    PreferenceManager.getDefaultSharedPreferences(this); 

for (int i=0; i<boxArray.size(); i++) { 
    if (preferences.getBoolean 
     (findViewById(boxArray.get(i)).toString(), false) == true) { 
    //change the view of the checkbox to checked if its value is true 
    CheckBox currentBox = (CheckBox) findViewById(boxArray.get(i)); 
    currentBox.setChecked(true); 
    } 
} 

答えて

0

はどのように共有設定に値を設定するのですか?共有好みgetBoolean()メソッドは常にfalseをデフォルトされている場合は

ボックスがチェックされますが

preferences.edit().putBoolean(TheCheckedBoxId, true); 

ようなことを行うのですか、値が全てではありませんか、それだけで偽のいずれか。私はあなたが試みることができると思うそのキーが全く存在するかどうか見るために

preferences.contains(findViewById(boxArray.get(i)).toString()) 

を参照してください。 preferences.getAll()メソッドもあります。

関連する問題