加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

checkboxpreference中的多重依赖关系android或listpreference的

发布时间:2020-12-13 20:46:21 所属栏目:百科 来源:网络整理
导读:例如:我的首选项屏幕中有三个复选框,并且每个复选框都有3个不同的列表首选项(A,B,C).我想让用户一次只选择一个复选框.我如何实现这一目标? 首选项屏幕中没有单选按钮 我不能使用Listpreference,如果我可以使用它 ListPreference android:key="livewallpape
例如:我的首选项屏幕中有三个复选框,并且每个复选框都有3个不同的列表首选项(A,B,C).我想让用户一次只选择一个复选框.我如何实现这一目标?

>首选项屏幕中没有单选按钮
>我不能使用Listpreference,如果我可以使用它

ListPreference
    android:key="livewallpaper_testpattern"
    android:title="@string/livewallpaper_settings_title"
    android:summary="@string/livewallpaper_settings_summary"
    android:entries="@array/livewallpaper_testpattern_names"
    android:entryValues="@array/livewallpaper_testpattern_prefix"

这个Listprefrence的数组是“蓝色”,“红色”,“白色”

if it is blue
ListPreference A depends on blue

if it is red
ListPreference B depends on red

if it is white
ListPreference C depends on white

我怎样才能做到这一点?

我在谷歌搜索3-4页,这里几乎所有关于这些,但我找不到任何答案.

最好的祝福,

提前致谢..

您可以在PreferenceActivity类中覆盖onSharedPreferenceChanged,并以编程方式启用/禁用适当的首选项:
public class MyPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
    ...
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key) {
        if (key.equals("livewallpaper_testpattern")) {
            if (/* check if livewallpaper_testpattern equals to blue */) {
                findPreference("ListPreferenceKey_A").setEnabled(true);
                findPreference("ListPreferenceKey_B").setEnabled(false);
                findPreference("ListPreferenceKey_C").setEnabled(false);
            } else if (/* check if livewallpaper_testpattern equals to red */) {
                // enable B,disable A & C
            } else if (/* check id livewallpaper_testpattern equals to white */) {
                // enable C,disable A & B
            }
        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读