我的问题是关于使用相同或不同的侦听器多次调用setOnTouchListener的效果.
view.setOnTouchListener(myListener的);
据我所知,这将最终在Motion Events上的myListener类中调用"公共布尔onTouch(View v,MotionEvent事件)"方法.我不明白的是当我后来称之为:
view.setOnTouchListener(myOtherListener);
myListener仍然会收到动作事件吗?
另外,如果我打电话
view.setOnTouchListener(myListener的);
再次,它是否在每次触摸事件中调用myListener.onTouch两次?最后,你如何取消订阅作为听众?
我看了一下开发指南,但没有找到任何明确地说出这个或类似的setListeners如何工作的东西,但是如果有人有一个方便的书签或知道这是如何工作,我将不胜感激.
ina*_*ruk 10
一般规则是当函数以"set"开头时它取代了以前的监听器.如果要取消注册侦听器使用view.setOnTouchListener(null);.
view.setOnTouchListener(myListener);
/* myListener is active */
view.setOnTouchListener(myOtherListener);
/* myListener is inactive, myOtherListener is active */
view.setOnTouchListener(myListener);
/* myListener is active, myOtherListener is inactive */
Run Code Online (Sandbox Code Playgroud)
如果存在附加逻辑,您通常会在函数名中看到add或添加register前缀.例如,TextView.addTestChangedListener()和Context.registerReceiver().
| 归档时间: |
|
| 查看次数: |
1442 次 |
| 最近记录: |