在android中从视图中移除一个监听器

有没有什么办法从Android的视图中删除侦听器? 我有一个checkbox,我把一个checkchangedlistener附加到。 问题是调用setChecked()会导致我的侦听器触发。

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

Solutions Collecting From Web of "在android中从视图中移除一个监听器"

那么,我find了答案。 这似乎没有logging在任何地方,但我经历了View类的代码,如果您将null传递给setClickListener方法,它将删除侦听器。

 checkbox.setOnCheckChangedListener(null); 

这应该适用于任何事件监听器。

为什么你有一个checkChangeListener ? 如果你使用onClicklListener它可能只是为你工作?

在调用setChecked()之前,可以尝试将侦听器设置为不执行任何操作的侦听器,然后再放回有用的侦听器。

我有类似的问题与微调视图。 我的解决scheme是创build一个类成员variables,我检查OnItemSelected方法。 在以编程方式更改Spinner的内容/select之前,我将此variables设置为true 。 当OnItemSelected触发时,如果variables为true我将其更改为false ,只是return而不做任何工作。 这个缺点是它使得排除故障困难,因为这个variables被设置在我的代码中。

你只需使用removeListener(this)。 我在这里错过了什么?