sxa*_*nus 5 android preferences checkboxpreference listpreference
例如:我的首选项屏幕中有三个复选框,listpreference(A,B,C)每个复选框有3个不同的复选框.我想让用户一次只选择一个复选框.我如何实现这一目标?
首选项屏幕中没有单选按钮
我不能使用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"
Run Code Online (Sandbox Code Playgroud)这个Listprefrence的数组是"蓝色","红色","白色"
如果是蓝色ListPreference A取决于蓝色
如果它是红色ListPreference B依赖于红色
如果是白色ListPreference C取决于白色
我怎样才能做到这一点?
我在谷歌搜索3-4页,这里几乎所有关于这些,但我找不到任何答案.
最好的祝福,
提前致谢..
GrA*_*And 14
您可以onSharedPreferenceChanged在PreferenceActivity类中覆盖并以编程方式启用/禁用适当的首选项:
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
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4929 次 |
| 最近记录: |