checkboxpreference中的多重依赖关系android或listpreference的
发布时间:2020-12-13 20:46:21 所属栏目:百科 来源:网络整理
导读:例如:我的首选项屏幕中有三个复选框,并且每个复选框都有3个不同的列表首选项(A,B,C).我想让用户一次只选择一个复选框.我如何实现这一目标? 首选项屏幕中没有单选按钮 我不能使用Listpreference,如果我可以使用它 ListPreference android:key="livewallpape
例如:我的首选项屏幕中有三个复选框,并且每个复选框都有3个不同的列表首选项(A,B,C).我想让用户一次只选择一个复选框.我如何实现这一目标?
>首选项屏幕中没有单选按钮 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的数组是“蓝色”,“红色”,“白色”
我怎样才能做到这一点? 我在谷歌搜索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 } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |