PreferenceCategory 内に存在する ListPreference をプログラムで開こうとしています。XML 構造は次のようなものです。
<PreferenceScreen
android:key="pref_screen" >
<PreferenceCategory
android:title="Category"
andorid:key="pref_category">
<ListPreference
android:key="pref_list"
android:title="List" />
</PreferenceCategory>
</PreferenceScreen>
私の目標は、「pref_list」をプログラムで開き、ユーザーに表示することです。このトピックを調べて、このソリューションを提供しました:
// 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 );
これは、PreferenceCategory のない PreferenceScreen では完全に機能しますが、私のケースでは機能しません (ListPreference が PreferenceCategory 内にある場合)。
私の場合、これをどのように変更できますか?または、他の解決策はありますか?
PreferenceCategory には、PreferenceScreen のようなメソッドが見つかりませんでしたonItemClick()
。PreferenceCategoryの値の 'pos' を変更getOrder()
しても機能しませんでした。