Android在PreferenceScreens之间切换

时间:2011-06-26 10:21:40

标签: android preferences

我有一个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来关闭子屏幕,或关注前一个。想法?

2 个答案:

答案 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,看看它是否能满足您的需求。