根据其他首选项启用首选项

时间:2012-09-13 21:45:12

标签: android android-preferences

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

例如,如果我有checkbox_pref1,如果启用了那么select2 / 3/4被启用,如果checkbox_pref1被禁用,则option2 / 3/4会自动被禁用,或者这是否有一个XML属性可以完成此任务,或者是什么我需要编码来实现这种效果。

感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:28)

您可以使用dependency属性执行此操作。在您的Preference XML中,您可以将以下行添加到checkbox_pref2checkbox_pref3checkbox_pref2首选项中:

android:dependency="checkbox_pref1"

有用的链接:

Android Quick Preferences Tutorial

Android Preference Documentation (#dependency)

答案 1 :(得分:7)

以下是禁用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>