名单preference依赖 [英] ListPreference dependency

查看:146
本文介绍了名单preference依赖的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个目录preference 这看起来是这样的:

I have a ListPreference which look something like this:

<ListPreference
android:title="Choose item"
android:summary="..."
android:key="itemList"
android:defaultValue="item1"
android:entries="@array/items"
android:entryValues="@array/itemValues" />

然后,我在目录preference选择其它preference应该只有在项目3中启用

我可以以某种方式与安卓做到这一点?像安卓依赖=ITEMLIST:项目3

谢谢!

推荐答案

你可以做这样的事情,唯一的办法就是programmaticly。

The only way you can do something like this is programmaticly.

您不得不建立一个变化监听名单上的preference然后启用/禁用其他之一。

You'd have to set up an change listener on the ListPreference and then enable/disable the other one.

itemList = (ListPreference)findPreference("itemList");
itemList2 = (ListPreference)findPreference("itemList2");
itemList.setOnPreferenceChangeListener(new
Preference.OnPreferenceChangeListener() {
  public boolean onPreferenceChange(Preference preference, Object newValue) {
    final String val = newValue.toString();
    int index = itemList.findIndexOfValue(val);
    if(index==3)
      itemList2.setEnabled(true);
    else
      itemList2.setEnabled(false);
    return true;
  }
});

如果我是你,我甚至不会显示第二preference如果第一个设置不正确。要做到这一点,你必须手动(而不是在XML)宣布preference并添加/删除启用/禁用它吧。

If I were you I wouldn't even show the second preference if the first isn't set properly. To do that you have to declare the preference manually (not in the XML) and add/remove it instead of enabling/disabling.

现在是不是该你见过的最好的最答案吗?!

Now isn't this the bestest answer you've ever seen?!

灵光

这篇关于名单preference依赖的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆