Android touchlisteners和TextView

Android touchlisteners和TextView,android,view,ontouchlistener,Android,View,Ontouchlistener,实际上,我正试图在我的android(1.5)应用程序中实现一个ontouchlistener。 因此,我在类中实现了“ontouchlistener”,然后将代码放入: public boolean onTouchEvent (MotionEvent e){ //code } 问题是,如果在(例如)微调器或EditTextView上拖动,则不会调用此方法。解决此问题的唯一方法是手动向每个视图添加ontouchlistener: ((Spinner)(findViewById(R.id.sp

实际上,我正试图在我的android(1.5)应用程序中实现一个ontouchlistener。 因此,我在类中实现了“ontouchlistener”,然后将代码放入:

public boolean onTouchEvent (MotionEvent e){
 //code
}
问题是,如果在(例如)微调器或EditTextView上拖动,则不会调用此方法。解决此问题的唯一方法是手动向每个视图添加ontouchlistener:

((Spinner)(findViewById(R.id.spinner1))).setOnTouchListener(tl);
((Spinner)(findViewById(R.id.spinner2))).setOnTouchListener(tl);
(tl是侦听器) 那么,在触摸事件到达每个视图之前,难道没有办法捕捉到它吗? 提前谢谢


Ripei

你到底想做什么-你想:

  • 在某些情况下检测整个手势
    活动
  • 仅检测给定时间的触摸
    查看
如果您想要前者:

看看这个例子:

基本上,您将所有已注册的触摸事件重定向到
手势检测器
。 它了解用户输入的确切内容(单点、双点、滚动等),并在
SimpleOnGestureListener
中调用相应的回调,您应该实现该回调

如果您想要后者:

您可以:

  • 覆盖视图的
    onTouchEvent()
  • 实现并将
    挂接到TouchListener
    (如果您想在发送到它之前获得触摸) 如果要实现
    onTouchListener
    ,您将不在
    onTouchEvent()
    方法中工作,而是在接口的
    onTouch()
    方法中工作


    希望能有所帮助。

    是的,我想知道你提到的第一点。但我正在寻找一种方法来解决这个问题,而不必为我添加到活动的每个视图添加一个gesturelistener/onclicklistener。但这似乎是不可能的。不,实际上我提到的第一种方法正是你想要的——看看链接中的例子。基本上,您可以将所有触摸从
    活动
    重定向到
    手势检测器
    。这意味着所有未在视图中进行内部处理的触摸都会被捕获和扫描,以便您知道用户是否双击或滚动。
    SimpleGestureListener
    已注册到负责整个
    活动的
    GestureDetector
    。您不会为每个
    视图添加侦听器。