¿Cómo se obtiene el valor predeterminado de una preferencia de Android definida en XML? No quiero repetir la definición del valor predeterminado tanto en el código como en las preferencias XML.Valor predeterminado de la preferencia de Android
Respuesta
Puede definir el valor por defecto de recursos (/values/bool.xml
):
<resources>
<bool name="mypreference_default">true</bool>
</resources>
Usar el valor en el preferences.xml
:
<CheckBoxPreference
android:defaultValue="@bool/mypreference_default"
android:key="mypreference"
android:title="@string/mypreference_title" />
Luego use en el código:
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
Boolean value = context.getResources().getBoolean(R.bool.mypreference_default);
Boolean b = p.getBoolean("mypreference", value);
Una buena manera de hacerlo. ¡Gracias por compartir! – pilcrowpipe
Eso es exactamente lo que estaba buscando, gracias. Una sugerencia más: defina los recursos que no están en strings.xml pero en un archivo separado (por ejemplo, constants.xml) para evitar la localización. – schnatterer
@schnatterer: mover las cadenas a un archivo diferente no evitará la localización. El nombre de archivo 'strings.xml' es solo una convención. Cualquier recurso puede ser localizado colocándolo en la subcarpeta 'res /' correcta. Aunque colocar las configuraciones predeterminadas en un archivo de recursos separado es probablemente una buena idea. –
Primero debe definir los valores predeterminados en su archivo XML de preferencia. A continuación, puede rellenar las preferencias con los valores por defecto en su actividad principal, llamando al:
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
Cuando necesite recuperar una cierta preferencia sólo llame:
int value = prefs.getInt("key", null);
Desde sus preferencias están pobladas que no lo hará obtener null
valor.
Esto todavía no protege contra la posible situación en la que alguien en la línea elimina una preferencia de la XML y olvida actualizar el código de Java que lo solicita. En esa situación, la aplicación aún compilará, pero terminará con una NullPointerException. – idolize
Sí, esto es cierto, pero luego debe escribirse una Prueba funcional para probar si todas las preferencias necesarias se recuperan de XML. – pixel
esto realmente no funcionó en absoluto para mí. los valores predeterminados no se establecieron después de llamar a este método. – moonlightcheese
Crear integer.xml
bajo res/values
para almacenar constantes enteras.
En referencia prefereces.xml
"@integer/default_brightness"
En el código context.getResources().getInteger(R.integer.default_brightness)
- 1. Android CheckBoxPreference Valor predeterminado
- 2. Preferencia valor por defecto tono de
- 3. Valor de preferencia personalizado de Android no guardado
- 4. Android: Estilo de preferencia
- 5. ¿Procesar el valor de preferencia antes de guardar en Android?
- 6. Configuración del campo Resumen de preferencia de UI al valor de la preferencia
- 7. Android - valor predeterminado en editText
- 8. Android: lanzar una preferencia personalizada desde una actividad de preferencia
- 9. ¿prefijo horizontal de preferencia android en preferencia personalizada?
- 10. RingtonePreference valor predeterminado
- 11. Uso de preferencia de lista en Android
- 12. Idioma de actualización de Android en la actividad de preferencia
- 13. Preferencia de tienda Eclipse Preferencia
- 14. Quiero borrar el valor de la preferencia compartida
- 15. Cambiar color de texto de preferencia de preferencia
- 16. título preferencia Android estilo de texto/Resumen
- 17. Android: preferencia de tamaño de fuente en toda la aplicación
- 18. Valor predeterminado de BOOL
- 19. ¿Cuál es el tamaño máximo para un valor de preferencia compartido de Android?
- 20. Android: Cómo ajustar Margen/Relleno en Preferencia?
- 21. personalizar la casilla de verificación preferencia
- 22. DataContract, valor predeterminado de DataMember
- 23. Valor de atributo predeterminado JAXB
- 24. Valor predeterminado de ComboBox FXML
- 25. valor predeterminado Tipo de recopilación
- 26. Dónde almacenar las claves de preferencia de Android?
- 27. ¿Cómo se declara el tipo de una preferencia de Android?
- 28. Pantalla negra en la preferencia interiorScreen
- 29. Cómo hacer lo contrario al atributo de preferencia android: ¿dependencia?
- 30. ¿Cómo puedo crear dinámicamente una preferencia de Android?
publicar su archivo de preferencias xml, Qué quiere decir un PREFERENCE – Jorgesys