Только ключи CheckboxPreference с android :defaultValue="true" будут показаны в коде ниже. Таким образом, ни один из ключей с defaultValue="false" не отображается. Как мне тогда получить список всех ключей в моем файле настроек?
PreferenceManager.setDefaultValues(this,R.xml.settings,true); //readAgain=false is same result
SharedPreferences prefs=PreferenceManager.getDefaultSharedPreferences(this);
Map prefMap=prefs.getAll();
for(String key:prefMap.keySet()) {
Log.d("preference key=",key); //only keys with true are shown
}
}
Согласно документам, getAll ()должен :«Получить все значения из настроек». Однако, похоже, он получает только те ключи, которые имеют значение по умолчанию = true, если пользователь не установил предпочтение позже.
РЕДАКТИРОВАТЬ:Вероятно, это связано с ошибкой Android :6441 , но не дает мне обходного пути для получения всех ключей.