7

He creado una PreferenceActivity basada en xml para PreferenceScreen. En el xml, puede asignar valores predeterminados a las diferentes preferencias. Pero estos no se almacenan en mis SharedPreferences antes de que la pantalla se abra y se cierre.¿Cómo hacer que SharedPreferences de una PreferenceActivity se establezca como predeterminado en Android?

El problema es que quiero usar inmediatamente las Preferencias almacenadas en esta pantalla (como la dirección del servidor), y el usuario solo tendrá que abrirla si quiere cambiar los valores predeterminados.

¿Hay alguna forma de almacenar todas las preferencias de la pantalla de preferencias xml sin forzar al usuario a abrir y cerrar la actividad de preferencia?

Soy consciente de que puede proporcionar un valor predeterminado al recuperar la preferencia de SharedPreferences, pero es estúpido tener que mantener los valores predeterminados tanto en xml como en código.

Respuesta

13

Simplemente use este código en la clase Application.

PreferenceManager.setDefaultValues(this, R.xml.preference, false); 

Se carga sus preferencias a partir de XML, y el último parámetro (readAgain) garantizará no serán sobrescritos que las preferencias del usuario. Debe mantener los parámetros predeterminados en el archivo R.xml.preference.

Eche un vistazo a PreferenceManager.setDefaultValues en la API de Android para una mayor investigación.

+0

¡Justo lo que estaba buscando, gracias! – Gober

+1

Gran respuesta, exactamente lo que necesitaba también. – prolink007

Cuestiones relacionadas