¿Cómo cambiar el estado de un elemento de preferencia de fuera de PreferenceActivity?
Hay algunas características en mi aplicación que requieren Android versión 4.2 +. Así que en mi actividad principal, necesitaré comprobar las características disponibles del sistema operativo y modificar (Habilitar / Desactivar) los elementos de preferencias que se definen en mi PreferenceActivity
.
El siguiente código es inaccesible desde fuera de PreferenceActivity
- android preferencias compartidas y paquete comparado con preferencias compartidas
- Las preferencias compartidas a veces se eliminan
- Ocultar una preferencia en una PreferenciaActividad
- Preferencias compartidas de Android Inicialización
- PreferenciaActividad con varios archivos de preferencias
ListPreference prefReport = (ListPreference)getPreferenceScreen().findPreference("pref_report"); prefDspProfile.setValue("0");
Así que mi pregunta es cómo modificar los elementos de preferencias de fuera de PreferenceActivity.
- ¿Cómo guardar el estado de inicio de sesión del usuario en Android?
- Problemas con SharedPreferences en un servicio (getPreferences no existe en un servicio)
- Página web del navegador web de Android
- ¿Cómo puedo copiar SharedPreferences a una tarjeta SD?
- SharedPreferences.getAll () no tiene claves de preferencia que sean falsas. ¿Cómo recuperar todas las claves?
- Seguridad de SharedPreference de Android
- ¿Preferencias compartidas en Android?
- Android: Estilo de preferencia
Si utiliza una PreferenceAcitivity implícitamente está utilizando un archivo SharedPreference. Por lo tanto, fuera de su PreferenceAcitivity puede acceder a su archivo SharedPrefence y cambiarlo. Pronto, esos cambios se reflejarán en su PreferenceActivity.
Necesita un Contexto para acceder a una SharedPreference. Mirar hacia adelante por ejemplo en el método onCreate de otra simpleAcitivity.
ACTUALIZACIÓN: Utilizando este enfoque, no podrá activar / desactivar elementos. Puede cambiar sus valores o eliminarlos
@Override protected void onCreate(Bundle state){ super.onCreate(state); // Restore preferences SharedPreferences settings = getPreferences(MODE); // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { //change your setting here // We need an Editor object to make preference changes. // All objects are from android.context.Context SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); SharedPreferences.Editor editor = settings.edit(); editor.putBoolean("silentMode", mSilentMode); // Commit the edits! editor.commit(); } }
Otra forma, y en mi opinión mejor y más fácil es proporcionar recursos alternativos . Puede proporcionar muchos archivos xml, que definen la configuración de la aplicación según el nivel de la API de Android, utilizando un calificador de recursos . Por ejemplo: v2, v17.
res-v4 setting.xml res-v17 setting.xml -> This file can include specific Jelly Beans configs
- ¿Por qué no están dibujando mis puntos de vista?
- No se puede usar jwplayer en una aplicación para Android