【问题标题】:Android switching between PreferenceScreensAndroid 在 PreferenceScreens 之间切换
【发布时间】:2011-06-26 21:05:08
【问题描述】:

我有一个 PreferencesScreen,它有一些 Preferences 和一个子屏幕。它看起来像这样:

<PreferenceScreen android:key="root">

    <Preference android:key="first" />

    <PreferenceScreen android:key="subScreen" />
        <Preference android:key="second" />
        <Preference android:key="third" />
    </PreferenceScreen>

</PreferenceScreen>

当用户点击子屏幕时,他被移动到子屏幕视图。现在我想在用户单击“第二个”或“第三个”时将用户重定向到“根”首选项屏幕。我似乎没有找到合适的 API 来关闭子屏幕或聚焦前一个。想法?

【问题讨论】:

    标签: android preferences


    【解决方案1】:

    首选项子屏幕显示为对话框,在您的情况下,关闭代表适当PreferenceScreen 的对话框就足够了。将以下 sn-p 插入 OnPreferenceClickListener 的 onPreferenceClick() 方法中,您可能为“第二”和“第三”首选项设置以关闭对话框:

    PreferenceScreen ps = (PreferenceScreen)PrefsActivity.this.getPreferenceScreen()
        .findPreference("subScreen");
    ps.getDialog().dismiss();
    

    其中PrefsActivity 是在您的应用程序中使用的PreferenceActivity 的封闭实例。

    【讨论】:

      【解决方案2】:

      我不知道你为什么一开始就没有Preference 元素。在我的脑海中,我无法想到用户会在设置中遇到您想要的行为的任何地方,因此您尝试做的事情可能是出乎意料的。另外,我建议您开始远离嵌套的 PreferenceScreen 元素,因为新方向是 PreferenceFragments 用于 Honeycomb 向前。

      话虽如此,请在PreferenceActivity 上尝试setPreferenceScreen(),看看它是否能满足您的需求。

      【讨论】:

      • 为了简洁起见,我已经清理了上面的 sn-p。整个来源包含更多与我的问题无关的细节。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多