android 取消选中状态,Android:显示/隐藏偏好检查/取消选中其他CheckBoxPreference

博主在尝试实现一个功能,当CheckBoxPreference'A'被选中时显示偏好设置'B',取消选中则隐藏'B'。他们遇到了一个问题,即在第二次取消选中'A'时,onPreferenceChangeListener被调用两次,导致'B'被错误地移除。日志显示了这个问题,并寻求解决方案。
摘要由CSDN通过智能技术生成

我试图完成这样的事情: 当我检查CheckBoxPreference'A'时,其他首选项('B')显示在A下方, 当我取消选中'A ',首选项'B'隐藏...Android:显示/隐藏偏好检查/取消选中其他CheckBoxPreference

因此,一般来说,它应该像依赖项一样工作,但不仅启用/禁用首选项B,而且隐藏它。

这就是我想出了:

prefA = (CheckBoxPreference)findPreference("preference_A");

prefA.setChecked(false);

prefB = findPreference("preference_B");

category.removePreference(prefB);

prefA.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

@Override

public boolean onPreferenceChange(Preference preference, Object newValue) {

boolean switchedOn = (Boolean)newValue;

if (switchedOn)

{

Log.d("pref_test", "prefA checked");

category.addPreference(prefB);

}

else

{

Log.d("pref_test", "prefA UNchecked");

prefB = findPreference("preference_B");

category.removePreference(prefB);

}

return switchedOn;

}

});

PREFA和的PrefB前面已经定义为PreferenceFragment类字段。

的问题是,它只有2次点击工作正常,我的日志说:

prefA checked

prefA UNchecked

prefA UNchecked

就像是呼吁onPreferenceChangeListener两次取消选中(显然导致.removePreference(的PrefB)方法返回null)。

解决此问题的任何想法?

+0

尝试返回的真正替代switchedOn –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值