android dispatchTouchEvent获取tapped视图

Seb*_*AND 6 events android

我在我的活动中调用此函数:

@Override
public boolean dispatchTouchEvent(MotionEvent touchEvent)
Run Code Online (Sandbox Code Playgroud)

这允许我在任何组件聚焦之前处理操作,甚至拒绝将焦点放在这些元素上.

问题:我想知道我怎么知道在这个函数中触及了什么组件(View),然后我可以选择是否要完成事件.

UGLY SOLUTION:我现在有一个丑陋的解决方案是:我知道允许事件发生的组件的位置,并且我做了很多条件来大致决定用户是否点击了这个组件.

谢谢.

Dro*_*der 0

您可能想使用OnTouchListener

private OnTouchListener mOnTouchListener= new OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) {

          switch(v.getId()){

              case R.id.id1): 
              // Do stuff
              break;

              case R.id.id2: 
              // Do stuff
              break;
              }    

        return false/true;
    }
};
Run Code Online (Sandbox Code Playgroud)