2011-11-02 26 views
0

在Android中,我试图捕获用户触摸以及用户长时间触摸。我有一个活动,在其中我重写了onTouchEvent()方法来处理各种屏幕触摸。Android:如何结合Activity.onTouchEvent()和View.setOnLongClickListener()功能

我正在尝试将“Long Presses”合并到我的用户界面选择中。

我找不到Activity.onLongTouchEvent()供我重写。

我的应用程序也有一个SurfaceView,我知道我能做到这一点:

sv.setOnLongClickListener (new View.OnLongClickListener() 
{ 
    @Override 
    public boolean onLongClick (View v) 
    { 
     SendAToast(); 
     return false; 
    } 
}); 

当我执行的代码,它的工作原理完全像它应该。

但是,现在我的onTouchEvent()代码从来不会被调用,即使我没有触摸屏幕足够长时间以使其成为“长按”。

是否有人知道一种方法来获得这两个代码位一起工作?

编辑:

我张贴在此之后,一个同事给我看了“OnGestureListener”界面。这里有一个例子:

http://www.ceveni.com/2009/08/android-gestures-detection-sample-code.html

我使用的接口来捕获长按,它甚至提供了屏幕坐标一起工作(其中OnLongClickListener并非如此)。所以,它似乎在伎俩。

为什么此功能不会自动成为活动的一部分?它确实看起来像我的核心功能。

回答

1

我会将触摸的东西移动到视图的onTouchEvent而不是Activity中。

+0

这可能是我一开始应该考虑的事情,但我不知道它甚至存在。现在,我认为有太多的代码需要发布才能实现。当我们转向版本2时,我一定会牢记这个想法。 – Rich