Android 复选框首选项和额外选项

Android checkbox preferences and extra options

是否可以设置 android 复选框首选项或列表首选项以向首选项屏幕添加更多或更少的项目?如果可以,我该如何实现?

例如我有这样一个简单的布局:

<ListPreference
    android:key="wallpaper-type"
    android:title="Choose Wallpaper Style"
    android:entries="@array/wpType"
    android:entryValues="@array/wpTypeValues"
    />

此列表中有 3 个选项。我希望这样,如果您选择选项 1,您可以选择不同的菜单项,因为每个项目都有不同的用户可以更新的参数。

同样,如果我有这个选项:

<CheckBoxPreference
    android:key="enable_brightness"
    android:title="Enable Brightness Tap Menu"/>

因此,如果用户单击此复选框,则可以将另一个首选项菜单添加到视图中。

也许我的做法全错了,应该重新设计我构建视图和选项的方式,或者最好从 xml 中填充动态选项。

标准的方法是定义android:dependency。不可用的首选项显示为禁用而不是消失。

此外,一般来说,如果您正在使用首选项,您希望通过设置 android:persistent="true"

将其保存在 SharedPreference 中

这是一个示例

    <CheckBoxPreference
            android:title="@string/show_notifications_title"
            android:key="show_notifications"
            android:persistent="true"
            android:defaultValue="true"/>
    <CheckBoxPreference
            android:title="@string/show_file_size_error_title"
            android:key="show_file_size_error"
            android:dependency="show_notifications"
            android:persistent="true"
            android:defaultValue="true"/>