gpt4 book ai didi

android - 以编程方式更改选中状态后未调用 CheckBox onCheckedChanged?

转载 作者:行者123 更新时间:2023-12-02 18:38:52 33 4
gpt4 key购买 nike

在我的代码中,我在将初始值设置为 CheckBox 之前 setOnCheckedChangeListener 但在设置初始值后未调用监听器方法:

final CheckBox check_box = convertView.findViewById(R.id.check_box);

check_box.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

// Some logic
}
}

在上面的行之后,我将初始值设置为 CheckBox,如下所示,

if (isConditionTrue) {
check_box.setChecked(true);
} else {
check_box.setChecked(false);
}
}

但是当使用方法 setChecked() 以编程方式更改检查值时,监听器方法 onCheckedChanged 从未调用,但当用户通过显示更改它时,它会被调用。这是正常行为还是我错误地实现了它?

最佳答案

当此按钮的选中状态更改时,将调用

setOnCheckedChangeListener()。但是,查看您的代码,复选框的状态可能不会改变。

if (isConditionTrue) {
check_box.setChecked(true);
} else {
check_box.;
}
}

如果 isConditionTrue 为 false 并且 check_box 已取消选中,则 setChecked(false) 不会导致调用 setOnCheckedChangeListener不被叫。这同样适用于已经选中的 check_box 并且您尝试 setChecked(true);

关于android - 以编程方式更改选中状态后未调用 CheckBox onCheckedChanged?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50781926/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com