Próbuję otworzyć programowo ListPreference, które istnieją wewnątrz PreferenceCategory. Struktura XML wygląda następująco:Jak otworzyć lub symulować kliknięcie na Android ListPreference, która jest w kategorii preferencji?
<PreferenceScreen
android:key="pref_screen" >
<PreferenceCategory
android:title="Category"
andorid:key="pref_category">
<ListPreference
android:key="pref_list"
android:title="List" />
</PreferenceCategory>
</PreferenceScreen>
Moim celem jest programowe otwarcie listy "pref_list" i wyświetlenie jej użytkownikowi. Spojrzałem w this tematu, oferując tego rozwiązania:
// 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);
Działa to doskonale na PreferenceScreen bez PreferenceCategory, ale nie mogę dostać pracy w moim przypadku (gdy ListPreference znajduje się wewnątrz PreferenceCategory).
Jak mogę zmienić to dla mojej sprawy? Czy jest jakieś inne rozwiązanie?
Nie można znaleźć w PreferenceCategory metody podobnej do onItemClick()
z PreferenceScreen. Zmiana "pozycji" dla wartości getOrder()
mojej kategorii preferencji nie działa tak dobrze.