Sto provando ad aprire programmaticamente un ListPreference, che esiste all'interno di PreferenceCategory. La struttura XML è qualcosa di simile:Come aprire o simulare clic su Android ListPreference, che è all'interno della categoria di preferenza?
<PreferenceScreen
android:key="pref_screen" >
<PreferenceCategory
android:title="Category"
andorid:key="pref_category">
<ListPreference
android:key="pref_list"
android:title="List" />
</PreferenceCategory>
</PreferenceScreen>
Il mio obiettivo è quello di aprire "pref_list" programatically, e visualizzarla all'utente. Ho guardato in this argomento, offrendo questa soluzione:
// the preference screen your item is in must be known
PreferenceScreen screen = (PreferenceScreen) findPreference("pref_screen");
// the position of your item inside the preference screen above
int pos = findPreference("pref_list").getOrder();
// simulate a click/call it!!
screen.onItemClick(null, null, pos, 0);
Questo funziona perfettamente per un PREFERENCE senza PreferenceCategory, ma non riesco a farlo funzionare per il mio caso (Quando il ListPreference si trova all'interno PreferenceCategory).
Come posso modificare questo per il mio caso? O c'è qualche altra soluzione?
Non sono riuscito a trovare in PreferenceCategory un metodo simile a onItemClick()
di PreferenceScreen. La modifica di "pos" per il valore getOrder()
del mio PreferenceCategory non ha funzionato altrettanto bene.