从android中的视图中删除一个监听器

Fal*_*rri 30 checkbox android view listener

有没有办法从Viewandroid中删除一个监听器?我有一个Checkbox我附加的CheckChangedListener.问题是,调用setChecked()它会导致我的听众开火.

如果我不能只是删除一个监听器,有没有办法阻止侦听器在我setChecked()手动调用时触发而不是从触摸事件中检查?

Fal*_*rri 62

好吧,我找到了答案.这似乎没有在任何地方记录,但我浏览了View类的代码,如果您将null传递给setClickListener方法,它将删除侦听器.

checkbox.setOnCheckChangedListener(null);
Run Code Online (Sandbox Code Playgroud)

这适用于任何事件监听器.

  • 我不会将此称为"无证件".如果视图支持给定类型的单个侦听器,并且您将该侦听器设置为null,那么您还期望发生什么?:) (4认同)
  • 这不是一个没有记录的功能.它只是没有记录,传递null是安全的.视图使用的内部侦听器在构造时从null开始,并在确定是否分派事件时检查为null.设置null只会将其重置为设置侦听器之前的值. (3认同)
  • 不是应该是setOnCheckedChangeListener吗? (2认同)

Nan*_*nne 6

你为什么有一个checkChangeListener?如果你使用onClicklListener它可能只适合你?