我有一个PreferencesScreen,它有一些首选项和一个子屏幕。它看起来像这样:
<PreferenceScreen android:key="root">
<Preference android:key="first" />
<PreferenceScreen android:key="subScreen" />
<Preference android:key="second" />
<Preference android:key="third" />
</PreferenceScreen>
</PreferenceScreen>
当用户点击子屏幕时,他将被移动到子屏幕视图。现在我想在用户点击“第二个”或“第三个”时将用户重定向到“root”首选项屏幕。我似乎没有找到合适的API来关闭子屏幕,或关注前一个。想法?
答案 0 :(得分:3)
首选项子屏幕显示为对话框,在您的情况下,只需删除代表相应PreferenceScreen
的对话框即可。将以下代码段插入onPreferenceClick()
OnPreferenceClickListener
方法,您可能设置为“第二”和“第三”首选项以关闭对话框:
PreferenceScreen ps = (PreferenceScreen)PrefsActivity.this.getPreferenceScreen()
.findPreference("subScreen");
ps.getDialog().dismiss();
其中PrefsActivity
是您应用程序中使用的PreferenceActivity
的封闭实例。
答案 1 :(得分:1)
我不知道你为什么首先只有Preference
个元素。在我的头脑中,我无法想到用户会遇到你想要的行为的设置中的任何地方,所以你想要做的事情可能是出乎意料的。此外,我建议您开始远离嵌套的PreferenceScreen
元素,因为Honeycomb的新方向为PreferenceFragments
。
话虽如此,请在setPreferenceScreen()
上尝试PreferenceActivity
,看看它是否能满足您的需求。