Tengo un PreferenceActivity
con un árbol 2 nivel de PreferenceScreen
s, algo así como:PreferenceActivity Resumen actualización
<PreferenceScreen>
<PreferenceScreen android:key="A">
<ListPreference/>
<EditTextPreference/>
</PreferenceScreen>
<PreferenceScreen android:key="B">
<ListPreference/>
<EditTextPreference/>
</PreferenceScreen>
...
</PreferenceScreen>
Cada una de las pantallas de preferencias de nivel inferior, por ejemplo, A y B, está recogiendo dos piezas de datos relacionados . Quiero que el resumen de esos elementos principales sea una combinación de los valores actuales de las dos preferencias secundarias.
Traté de agregar en PEFAChangeListener's en las preferencias de la hoja y actualizando el resumen a partir de ahí, pero parece que no toma. Las preferencias son creados mediante programación dentro de la actividad, por lo que estoy haciendo algo como esto en onCreate:
leafListPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// do some work
prefScreenA.setSummary(/* get new summary based on newValue */);
return true;
}
});
Luego trató de encontrar un lugar donde pueda ser informado de que he vuelto a la pantalla de preferencias de primer nivel desde una subpágina para que pueda actualizar en ese punto. Sin embargo, no estoy seguro de cómo se muestran las pantallas de nivel inferior. Parece que en realidad son diálogos, no actividades completas, ya que onPause/onResume no se llama cuando se mueve entre ellos. ¿Hay algún método en algún lugar que me falta que se llamará cuando regrese a la página de nivel superior?
También intenté agregar un SharedPreferenceChangeListener, como se describe here, pero parece que nunca se llamará.
¿Alguien tiene alguna pista sobre lo que me falta aquí, o sobre algún enfoque más fácil que me falta?
Gracias por la sugerencia. Dejé de trabajar en esto hace un tiempo, pero lo intentaré cuando tenga oportunidad. –
Lamentablemente esto no funcionó para mí. –
funcionó muy bien, gracias – Yahia