Vas*_*asu 22 android android-preferences
我曾经PreferenceActivity在我的Android应用程序中有偏好.我想要一个偏好说"pref 2"在其他偏好说"pref 1"未被选中时被启用,而"pref 2"在被选中"pref 1"时被禁用.即恰好与android:dependancy属性相反.
我怎样才能做到这一点?
cla*_*ere 93
是的,可以开箱即用.假设你想在pref1关闭时禁用pref2
这里是为pref1输入的代码(首选xml布局):
<CheckBoxPreference
android:title="Pref1"
android:key="pref1">
</CheckBoxPreference>
Run Code Online (Sandbox Code Playgroud)
这是为pref2输入的代码(首选项xml布局):
<EditTextPreference
android:dialogMessage="Pref 2 dialog"
android:title="Pref2"
android:key="pref2"
android:dependency="pref1">
</EditTextPreference>
Run Code Online (Sandbox Code Playgroud)
像sigmazero13所说的那样,默认情况下disableDependentsState为false,因此您不需要将它包含在pref1属性中.
小智 30
根据这里的文档,你可以像这样在CheckBoxPreference标签中添加一个属性:
android:disableDependentsState="true"
Run Code Online (Sandbox Code Playgroud)
默认情况下,这是false,这意味着在取消选中复选框时禁用依赖项,但通过将其设置为true,它应该具有相反的效果.
Dav*_*und 10
我不认为它有任何开箱即用的解决方案,即倒置dependancy属性.但总有点击监听器:
preference1.setOnPreferenceClickListener(pref1_click);
....
private OnPreferenceClickListener pref1_click = new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
preference2.setEnabled(!preference1.isChecked());
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18269 次 |
| 最近记录: |