Solo CheckboxLas claves de referencia con un android: defaultValue = "true" se mostrarán en el código a continuación. Por lo tanto, no se muestran ninguna de las claves con defaultValue = "false". ¿Cómo obtengo una lista de todas las claves en mi archivo de preferencias?SharedPreferences.getAll() no tiene claves de preferencia que son falsas. ¿Cómo recuperar todas las llaves?
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
}
}
De acuerdo con los documentos getAll() debe: "Recuperar todos los valores de las preferencias." Sin embargo, parece que solo obtiene las claves que tienen predeterminado = verdadero a menos que el usuario haya establecido la preferencia más adelante.
EDITAR: This is likely related to Android Bug: 6441, pero no me da una solución para obtener todas las claves.
Si no tiene un valor por defecto y sin valor para el usuario, entonces no es en el compartida preferencias. si quieres todas las preferencias definidas, tal vez deberías repetir tu archivo xml de preferencias. – Ran
@ Ran-> Estas preferencias tienen android: defaultValue = false, por lo que es un valor. – Fraggle