6
只有帶有android:defaultValue =「true」的CheckboxPreference鍵將顯示在下面的代碼中。因此沒有顯示defaultValue =「false」的鍵。 如何獲得我的首選項文件中的所有密鑰列表?SharedPreferences.getAll()不具有false的首選項。如何檢索所有密鑰?
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()應: 「從首選項檢索所有值。」但是,除非用戶稍後設置了首選項,否則它似乎只獲取具有default = true的鍵。
編輯:This is likely related to Android Bug: 6441,但沒有給我一個解決方法來獲得所有的關鍵。
如果沒有默認值,並沒有用戶價值,則它不會在共享優先。如果你想要所有定義的首選項,也許你應該迭代你的首選項xml文件。 – Ran 2012-07-06 15:55:51
@ Ran->這些首選項有android:defaultValue = false,所以這是一個值。 – Fraggle 2012-07-06 16:09:10