SharedPreferences.getAll ()не имеет ключей предпочтений, которые являются ложными. Как восстановить все ключи?

Только ключи 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 , но не дает мне обходного пути для получения всех ключей.

6
задан Fraggle 6 July 2012 в 16:46
поделиться