设置中的一个字段是否可以依赖于 xml 中的另外两个字段?
Can one field in settings be dependent of two other in xml?
有没有办法让字段 "A" 依赖于两个字段 "key1" 和 "key2"?我正在使用一个值列表,有 2 个选项可以使用它们,我需要其中一个来 "unlock" 它而不必复制字段 "A"。像这样 android:dependency="key1 | key2"
?
如果您尝试 android:dependency="key1 | key2
,您的应用程序将会崩溃。我不知道在 xml 中是否有办法做到这一点,但你可以用这样的代码来做到这一点:
final ListPreference fieldA = (ListPreference) findPreference("fieldA");
SwitchPreference key1 = (SwitchPreference) findPreference("key1");
SwitchPreference key2 = (SwitchPreference) findPreference("key2");
key1.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue){
fieldA.setEnabled((Boolean) newValue);
return true;
}
});
key2.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue){
fieldA.setEnabled((Boolean) newValue);
return true;
}
});
有没有办法让字段 "A" 依赖于两个字段 "key1" 和 "key2"?我正在使用一个值列表,有 2 个选项可以使用它们,我需要其中一个来 "unlock" 它而不必复制字段 "A"。像这样 android:dependency="key1 | key2"
?
如果您尝试 android:dependency="key1 | key2
,您的应用程序将会崩溃。我不知道在 xml 中是否有办法做到这一点,但你可以用这样的代码来做到这一点:
final ListPreference fieldA = (ListPreference) findPreference("fieldA");
SwitchPreference key1 = (SwitchPreference) findPreference("key1");
SwitchPreference key2 = (SwitchPreference) findPreference("key2");
key1.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue){
fieldA.setEnabled((Boolean) newValue);
return true;
}
});
key2.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue){
fieldA.setEnabled((Boolean) newValue);
return true;
}
});