Ich versuche, eine ListPreference, die in PreferenceCategory vorhanden sind, programmatisch zu öffnen. Die XML-Struktur ist so etwas wie:Wie zu öffnen oder zu simulieren klicken Sie auf Android ListPreference, die innerhalb Präferenzkategorie ist?
<PreferenceScreen
android:key="pref_screen" >
<PreferenceCategory
android:title="Category"
andorid:key="pref_category">
<ListPreference
android:key="pref_list"
android:title="List" />
</PreferenceCategory>
</PreferenceScreen>
Mein Ziel ist es „pref_list“ programmatisch zu öffnen und es dem Benutzer angezeigt werden soll. Ich sah in this Thema, bietet diese Lösung:
// 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);
Das funktioniert perfekt für einen PreferenceScreen ohne PreferenceCategory, aber ich kann es nicht für meinen Fall bekommen arbeiten (wenn die ListPreference innerhalb PreferenceCategory befindet).
Wie kann ich das für meinen Fall ändern? Oder gibt es eine andere Lösung?
Ich konnte in PreferenceCategory keine Methode finden, ähnlich wie onItemClick()
von PreferenceScreen. Das Ändern von "pos" für den getOrder()
Wert meiner PreferenceCategory hat nicht so gut funktioniert.