如何删除监听器

时间:2021-12-12 08:36:36
由于功能需要,在imageview添加了监听器,,在后面想删除这个监听器怎么删除??

10 个解决方案

#1


你监听器是什么?
一般是setXXLinster(null)

#2


引用 1 楼 guoyoulei520 的回复:
你监听器是什么?
一般是setXXLinster(null)


试过这个方法,不行呐。。。我想要完全删除了这个监听器,等效于从没有没给添加过监听器的那种效果

#3


1楼的方法应该是OK的啊 完全删除和设置为null,效果难道不是一样的吗?

#4


引用 2 楼 u011341551 的回复:
Quote: 引用 1 楼 guoyoulei520 的回复:

你监听器是什么?
一般是setXXLinster(null)


试过这个方法,不行呐。。。我想要完全删除了这个监听器,等效于从没有没给添加过监听器的那种效果

一般是setXXLinster(null)  这种方式等同于删除之前设置控件的监听事件。sdk中没有提供removeXXXListener类似的接口,其实内部实现事件监听原理,也是判断监听对象是否为空,才进行事件分发的。

#5


引用 4 楼 xyang81 的回复:
Quote: 引用 2 楼 u011341551 的回复:

Quote: 引用 1 楼 guoyoulei520 的回复:

你监听器是什么?
一般是setXXLinster(null)


试过这个方法,不行呐。。。我想要完全删除了这个监听器,等效于从没有没给添加过监听器的那种效果

一般是setXXLinster(null)  这种方式等同于删除之前设置控件的监听事件。sdk中没有提供removeXXXListener类似的接口,其实内部实现事件监听原理,也是判断监听对象是否为空,才进行事件分发的。



这样的,我用的是framelayout,底层是可以放大的地图,上层一排imageview,如果我不添加监听器,点击所在区域就是点击在底层的,如果添加了监听器(即使添加后我在设置为null),就变成点击在上层的imageview了

#6


上面说的是对的,但也有类似于unRegisterListner这样的方式,看API有没有类似的方法就是。 

#7


引用 5 楼 u011341551 的回复:
Quote: 引用 4 楼 xyang81 的回复:

Quote: 引用 2 楼 u011341551 的回复:

Quote: 引用 1 楼 guoyoulei520 的回复:

你监听器是什么?
一般是setXXLinster(null)


试过这个方法,不行呐。。。我想要完全删除了这个监听器,等效于从没有没给添加过监听器的那种效果

一般是setXXLinster(null)  这种方式等同于删除之前设置控件的监听事件。sdk中没有提供removeXXXListener类似的接口,其实内部实现事件监听原理,也是判断监听对象是否为空,才进行事件分发的。



这样的,我用的是framelayout,底层是可以放大的地图,上层一排imageview,如果我不添加监听器,点击所在区域就是点击在底层的,如果添加了监听器(即使添加后我在设置为null),就变成点击在上层的imageview了

那是你设置错了,和有木有监听器没有关系,就像listview里面加checkbox,你onclick的时候,是要设计好你的代码的,我觉得你还是好好看看你的代码

#8


逻辑有问题、你可以在后面想删除时候,比如你打算添加页面管用、查找页面 不管用 用的都是同一个页面,你可以 进入查找的时候 传来一个值,在 图片哪里做判断 如果这个值 是查找哪里传来的值 就 不添加监听 否则就添加监听

#9


封装所有的你设置监听的方法 setListener()

不用的时候setListener(NULL)

#10


设置为空即可啊

#1


你监听器是什么?
一般是setXXLinster(null)

#2


引用 1 楼 guoyoulei520 的回复:
你监听器是什么?
一般是setXXLinster(null)


试过这个方法,不行呐。。。我想要完全删除了这个监听器,等效于从没有没给添加过监听器的那种效果

#3


1楼的方法应该是OK的啊 完全删除和设置为null,效果难道不是一样的吗?

#4


引用 2 楼 u011341551 的回复:
Quote: 引用 1 楼 guoyoulei520 的回复:

你监听器是什么?
一般是setXXLinster(null)


试过这个方法,不行呐。。。我想要完全删除了这个监听器,等效于从没有没给添加过监听器的那种效果

一般是setXXLinster(null)  这种方式等同于删除之前设置控件的监听事件。sdk中没有提供removeXXXListener类似的接口,其实内部实现事件监听原理,也是判断监听对象是否为空,才进行事件分发的。

#5


引用 4 楼 xyang81 的回复:
Quote: 引用 2 楼 u011341551 的回复:

Quote: 引用 1 楼 guoyoulei520 的回复:

你监听器是什么?
一般是setXXLinster(null)


试过这个方法,不行呐。。。我想要完全删除了这个监听器,等效于从没有没给添加过监听器的那种效果

一般是setXXLinster(null)  这种方式等同于删除之前设置控件的监听事件。sdk中没有提供removeXXXListener类似的接口,其实内部实现事件监听原理,也是判断监听对象是否为空,才进行事件分发的。



这样的,我用的是framelayout,底层是可以放大的地图,上层一排imageview,如果我不添加监听器,点击所在区域就是点击在底层的,如果添加了监听器(即使添加后我在设置为null),就变成点击在上层的imageview了

#6


上面说的是对的,但也有类似于unRegisterListner这样的方式,看API有没有类似的方法就是。 

#7


引用 5 楼 u011341551 的回复:
Quote: 引用 4 楼 xyang81 的回复:

Quote: 引用 2 楼 u011341551 的回复:

Quote: 引用 1 楼 guoyoulei520 的回复:

你监听器是什么?
一般是setXXLinster(null)


试过这个方法,不行呐。。。我想要完全删除了这个监听器,等效于从没有没给添加过监听器的那种效果

一般是setXXLinster(null)  这种方式等同于删除之前设置控件的监听事件。sdk中没有提供removeXXXListener类似的接口,其实内部实现事件监听原理,也是判断监听对象是否为空,才进行事件分发的。



这样的,我用的是framelayout,底层是可以放大的地图,上层一排imageview,如果我不添加监听器,点击所在区域就是点击在底层的,如果添加了监听器(即使添加后我在设置为null),就变成点击在上层的imageview了

那是你设置错了,和有木有监听器没有关系,就像listview里面加checkbox,你onclick的时候,是要设计好你的代码的,我觉得你还是好好看看你的代码

#8


逻辑有问题、你可以在后面想删除时候,比如你打算添加页面管用、查找页面 不管用 用的都是同一个页面,你可以 进入查找的时候 传来一个值,在 图片哪里做判断 如果这个值 是查找哪里传来的值 就 不添加监听 否则就添加监听

#9


封装所有的你设置监听的方法 setListener()

不用的时候setListener(NULL)

#10


设置为空即可啊