setOnClickListener(...)
和setOnCheckedChangeListener()
int checkbox
之间有什么区别?我怎么能改变状态?
答案 0 :(得分:0)
... setOnCheckedChangeListener()...我怎么能听到改变的状态?
您几乎回答了自己的问题:使用setOnCheckedChangeListener()
通知已检查状态更改。
答案 1 :(得分:0)
"在选中的更改"状态更改时触发,这可能是由于用户单击,或者因为您的程序将复选框标记为已选中。仅当用户单击复选框时才会触发单击侦听器。根据您的需要,您可能需要使用其中一种。
答案 2 :(得分:0)
所有View(textView,imageView,editText等)都有一些类似于onClickListener的属性。但每个项目也有自己的特定属性。
例如CheckBox有onCheckChangeListener或editText有onTextChangeListener。
答案 3 :(得分:0)
使用OnCheckedChangeListener,只要检查状态发生变化,即使在代码中使用.setChecked()完成,也会收到一个事件。
根据您的操作,这可能会导致意外行为(例如,当您在列表视图中有一个复选框时,视图会被回收并且复选框状态会以编程方式进行修改,它看起来与用户拥有的方式完全相同点击它。)
因此,当您编写应该对单击该复选框的用户做出反应的代码时,您应该使用OnClickListener。
答案 4 :(得分:-1)
我有一个想法,当我点击CheckBox时,CheckBox的状态可以保持原始状态。
mCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCheckBox.setChecked(mCheckBox.isChecked());
}
});