6
android:defaultValue = "true"のCheckboxPreferenceキーのみが下のコードに表示されます。 defaultValue = "false"のキーは表示されません。 どのように私の環境設定ファイルのすべてのキーのリストを取得するのですか?ドキュメントによるとSharedPreferences.getAll()には、偽の設定キーがありません。すべてのキーを取得するには?
PreferenceManager.setDefaultValues(this,R.xml.settings,true); //readAgain=false is same result
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(this);
Map<String, ?> prefMap=prefs.getAll();
for(String key:prefMap.keySet()) {
Log.d("preference key=",key); //only keys with true are shown
}
}
はのgetAll()すべきである: "環境設定からすべての値を取得します。"しかし、ユーザによって後で設定が設定されていない限り、デフォルト= trueのキーしか得られないように見えます。
EDIT:This is likely related to Android Bug: 6441ただし、すべてのキーを取得するための回避策はありません。
それがデフォルト値とのない値を持っていない場合、それは共有ではありません好み。定義されたすべての設定が必要な場合は、環境設定のxmlファイルを繰り返し処理する必要があります。 – Ran
@ Ran->これらの設定にはandroid:defaultValue = falseがあります。したがって、これは値です。 – Fraggle