Android中的动态事件处理



通常在android中我们所做的是我们获得对视图的引用,然后设置click listener,然后做一个函数。我想做的是,有很多手势(触摸,长触摸等)作为参数传递给方法,并根据传递的手势触发函数。

像这样:

public void doSomething(Event event, View view){
...do something
//if its onClick event that passed do something will trigger once user clicks it
//if its onLongClick event, the method will trigger for the onLongTap event
} 

我不知道如何做到这一点。任何帮助都会很感激。:)

你可以实现onTouch,你会有这样的东西:

public class YourView extends View implements View.OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
    //Here you can check for which movement is being made on a switch pattern. 
    //You can also call any gesture detector you might have
      mScaleDetector.onTouchEvent(event);
      mRotationDetector.onTouchEvent(event);
      mGestureDetector.onTouchEvent(event);
      final int action = MotionEventCompat.getActionMasked(ev);
      switch (action) {
        case MotionEvent.ACTION_DOWN:
        //Do stuff;
        break;
        case MotionEvent.ACTION_MOVE:
        //Do stuff;
        break;
        case MotionEvent.ACTION_UP:
        //Do stuff;
        break;
    return false;
    } 
}

我建议你阅读关于手势检测的文档,他们给了你一些如何实现这个的例子。

最新更新