Tengo una aplicación de Android en la que tengo mis preferencias en un archivo xml, que funciona bien. Ahora quiero establecer una de las preferencias usando el código en lugar de mostrar toda la pantalla de preferencias, ¿cómo voy a hacer esto?Android: cómo establecer una preferencia en el código
Respuesta
Asumo por preferencias que se refiere a las preferencias de su aplicación y no a la configuración del teléfono Android.
para almacenar las preferencias entre las corridas de que las aplicaciones que necesita para hacer lo siguiente
Crear un SharedPreferences objeto
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
Cadena N identifica sus preferencias y el segundo argumento es el modo que se accederá
Crear una instancia de un objeto Editor
SharedPreferences.Editor editor = settings.edit();
Nota: no intente settings.editor.edit(), esto no va a hacer que un objeto persistente y el código de abajo no funcionarán
Escriba sus preferencias a la memoria intermedia
editor.put...(String, value)
hay numerosas funciones de venta, putString, putBoolean, etc. la cadena es la clave ("versión", "buena racha") y el valor es el valor ("1.5.2", true)
vaciar el búfer
editor.commit();
Esto escribe en realidad se pone a las preferencias. Si su aplicación falla antes de esta línea, las preferencias no se escribirán. También hay un error documentado: se supone que commit() devuelve un valor booleano que indica éxito o falla. La última vez que lo revisé siempre devolvía falso.
Estas preferencias por almacenan en el teléfono y sólo se podrá acceder a la aplicación.
más documentación here
He intentado esto, pero no funcionó:
SharedPreferences settings = getSharedPreferences(String n, MODE_PRIVATE);
probar este lugar:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
Sería mucho más útil decir QUÉ salió mal, en lugar de "no funcionó". (No compiló? Se bloqueó cuando lo ejecutó? La lista de preferencias devuelta estaba vacía?) Sin embargo, +1 para un buen consejo: Mirando mi aplicación, su línea es lo que se utiliza para acceder a la configuración de MainActivity ; la línea de la respuesta original se puede usar opcionalmente para acceder a las configuraciones desde el código en un PreferenceFragment (un fragmento que contiene widgets que describen XML para mostrar/alterar las preferencias). – ToolmakerSteve
Usted puede ahorrar algo en los SharedPreferences mediante el uso de código de abajo
public static void save(String valueKey, String value) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
SharedPreferences.Editor edit = prefs.edit();
edit.putString(valueKey, value);
edit.commit();
}
Para leer preferencias:
public static String read(String valueKey, String valueDefault) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
return prefs.getString(valueKey, valueDefault);
}
- 1. Android: lanzar una preferencia personalizada desde una actividad de preferencia
- 2. Android: Estilo de preferencia
- 3. ¿prefijo horizontal de preferencia android en preferencia personalizada?
- 4. ¿Cómo se declara el tipo de una preferencia de Android?
- 5. Android: Cómo ajustar Margen/Relleno en Preferencia?
- 6. Cómo hacer que una actividad de preferencia inicie un cuadro de diálogo para establecer una preferencia personalizada
- 7. Establecer el enfoque inicial en una aplicación para Android
- 8. Ocultar una preferencia en una actividad de preferencia
- 9. ¿Cómo puedo crear dinámicamente una preferencia de Android?
- 10. android: establecer el margen en PopupWindow por el código
- 11. Uso de preferencia de lista en Android
- 12. ¿Procesar el valor de preferencia antes de guardar en Android?
- 13. Valor predeterminado de la preferencia de Android
- 14. ¿Cómo eliminar una preferencia de PreferenceActivity?
- 15. título preferencia Android estilo de texto/Resumen
- 16. Android: preferencia de tamaño de fuente en toda la aplicación
- 17. ¿Cómo establecer un enlace en el Código?
- 18. Cómo hacer lo contrario al atributo de preferencia android: ¿dependencia?
- 19. ¿Cómo establecer el valor de RingtonePreference del código?
- 20. ¿Cómo se puede escribir el código para hacer preferencias compartidas para una matriz en Android?
- 21. Preferencia de tienda Eclipse Preferencia
- 22. Cambiar color de texto de preferencia de preferencia
- 23. ¿Cuándo querríamos una preferencia no persistente?
- 24. Establecer CustomupExtension desde el código
- 25. Activar y desactivar una preferencia
- 26. cambio de color Preferencia artículo Resumen Texto en Android 4
- 27. Establecer visibilidad en el menú programáticamente android
- 28. ¿Cómo puedo configurar el color de texto de resumen de preferencia de Android?
- 29. ¿Es posible lanzar un DialogFragment desde una preferencia en una actividad de preferencia?
- 30. Cómo establecer layout_span a través del código
En realidad se puede utilizar una sola línea: prefs.edit() putInt (clave, valor)..cometer(); – tomash
¿Alguna idea de cómo difiere esto de PreferenceActivity y quizás tengas una referencia a un ejemplo de PreferenceActivity? –
Si no le importa el valor devuelto, los documentos dicen que, desde el nivel 9 de API, puede llamar a 'apply();' en lugar de a 'commit();' – Twinone