16

我目前正在开发一个 droid 应用程序,并且想知道是否有一种方法可以根据另一个首选项的值启用或禁用首选项。

例如,如果我有 checkbox_pref1,如果启用,则启用 option2/3/4,如果禁用 checkbox_pref1,则 option2/3/4 自动变为禁用,或者是否有 XML 属性可以完成此操作,或者我会这样做需要代码来实现这个效果。

感谢您的任何帮助,您可以提供。

4

2 回答 2

31

您可以使用dependency属性执行此操作。在您的PreferenceXML 中,将以下行添加到您的checkbox_pref2checkbox_pref3checkbox_pref2Preferences 中:

android:dependency="checkbox_pref1"

有用的链接:

Android 快速首选项教程

Android 偏好文档(#dependency)

于 2012-09-13T21:53:53.217 回答
8

这是我在选中主复选框首选项之前禁用 PreferenceScreen 的示例 - 感谢 kcoppock!对不起,我的声望不够高,无法超越你。

        <CheckBoxPreference
            android:title="@string/Day1_title"
            android:summary="@string/Day1_summary"
            android:key="pref_Day1" />
        <PreferenceScreen
            android:dependency="pref_Day1"
            android:key="day1_screen"
            android:summary="@string/Extra_Options">
            <EditTextPreference
              android:title="@string/Day1_title"
              android:summary="@string/Workout_Date"
              android:key="Day1_date"/>
            <EditTextPreference
              android:title="@string/Comment_title"
              android:key="Day1_comment"/>
        </PreferenceScreen>
于 2013-11-21T11:50:55.503 回答