当用户触摸任何Android屏幕时,我想找出任何事件。 我发现特定活动的触摸事件,但不是所有的屏幕,请给我一个 溶液
答案 0 :(得分:23)
试试这段代码
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
return super.onTouchEvent(event);
}
答案 1 :(得分:15)
使用onTouchEvent()
时可能遇到的问题是,由于您的视图层次结构在活动之上还有其他视图,因此触摸覆盖此事件的视图(按钮,编辑文本等)不会再去看你的活动,你就不会收到它们。
您应该使用dispatchTouchEvent()
,因为这会以相反的方式传播,从活动到其他视图并始终被调用。
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
// Your code here
return super.dispatchTouchEvent(ev);
}
答案 2 :(得分:0)
android触摸事件逐级调度,从活动开始到视图组和视图。比如Activity - RelativeLayout - Button,有很多覆盖方法可以控制触摸事件。 This may help you
答案 3 :(得分:-1)
我认为这不可能。
您可以使用额外的课程来接收所有活动中的所有触摸事件。 为此,你必须在每项活动中实施路过。
publich class TouchStore(){
public void recieveTouchEvent(MotionEvent event){
//Handle your events
}
}
public boolean onTouchEvent(MotionEvent event) {
touchStore.recieveTouchEvent(event);
}