如何收听在andorid中签入的复选框?

时间:2016-03-06 09:58:33

标签: android android-checkbox

setOnClickListener(...)setOnCheckedChangeListener() int checkbox之间有什么区别?我怎么能改变状态?

5 个答案:

答案 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());
        }
    });