题
实际上我正在尝试在我的 android (1.5) 应用程序中实现一个 ontouchlistener 。因此我在类中实现了“ontouchlistener”,然后我将代码放入:
public boolean onTouchEvent (MotionEvent e){
//code
}
问题是,如果我拖动(例如)Spinner 或 EditTextView ,则不会调用此方法。我发现解决这个问题的唯一方法是手动向每个视图添加一个 ontouchlistener :
((Spinner)(findViewById(R.id.spinner1))).setOnTouchListener(tl);
((Spinner)(findViewById(R.id.spinner2))).setOnTouchListener(tl);
(TL是OnTouchListener)那么,在获得每个视图之前,没有办法抓住触摸事件吗?提前致谢
里平
解决方案
您到底想做什么 - 您想:
- 检测某些部分的完整手势
Activity
. - 仅检测给定的触摸
View
如果你想要前者:
看一下这个例子:网格布局上的滑动手势检测.
基本上,您将所有注册的触摸事件重定向到 GestureDetector
。它了解用户输入的确切内容(单击、双击、滚动等)并在 SimpleOnGestureListener
, ,您应该实施。
如果你想要后者:
您可以:
- 覆盖视图的
onTouchEvent()
. - 实施和挂钩
onTouchListener
(如果您想在发送之前获得联系)。
如果你想实施 onTouchListener
, ,你将不在 onTouchEvent()
方法,但在接口的 onTouch()
方法。
希望有帮助。
不隶属于 StackOverflow