¿Cómo hacer que SharedPreferences de una PreferenceActivity esté configurada como predeterminada en Android?

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 abrir y cerrar la pantalla.

El problema es que quiero utilizar de inmediato las preferencias almacenadas en esta pantalla (como la dirección del servidor), y el usuario sólo tendrá que abrirlo si quiere cambiar los valores predeterminados.

¿Hay una manera de almacenar todas las preferencias del xml de la pantalla de las preferencias sin forzar al usuario a abrir ya cerrar la actividad de la preferencia?

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

Simplemente utilice este código en la clase Application .

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

readAgain sus preferencias desde XML y el último parámetro ( readAgain ) garantizará que las preferencias del usuario no se sobrescribirán. Debe mantener los parámetros predeterminados en el archivo R.xml.preference.

Echa un vistazo a PreferenceManager.setDefaultValues en la API de Android para una investigación más detallada.

  • ¿Cómo mantener la configuración del idioma de la aplicación después de reiniciar el dispositivo?
  • Actividad de preferencias de Android IllegalArgumentException: fragmento no válido para esta actividad
  • ¿Dónde debe llamar a PreferenceManager.setDefaultValues?
  • Lea SharedPreferences cuando no haya definido el nombre del archivo
  • Las preferencias compartidas sólo se guardan por primera vez
  • Método RingtonePreference getEntry
  • Android: ¿Cómo puedo guardar, borrar y restaurar SharedPreferences para la prueba de unidades?
  • Obtener SharedPreferences de un servicio
  • Preferencias de Android, cómo establecer la dependencia de las preferencias personalizadas
  • ¿cómo puedo establecer el valor marcado en ListPreference
  • Preferencias de Android: Valores predeterminados incorrectos DESPITE "setDefaultValues"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.