android dispatchTouchEvent获取tapped视图

时间:2012-07-12 10:17:03

标签: android events

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

@Override
public boolean dispatchTouchEvent(MotionEvent touchEvent)

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

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

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

感谢。

2 个答案:

答案 0 :(得分: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;
    }
};

答案 1 :(得分:0)

view.getid == R.id。//布局中的id //可以检查条件是否点击了所需的视图