我在我的活动上实现了onTouchEvent(TouchEvent)。但是,我想知道将此注册为活动主内容视图的事件需要哪些步骤。我想为覆盖整个活动屏幕空间的视图设置onTouchEvent。有一个setContentView(),它采用布局ID。如何将活动注册为主内容视图的ontouchEvent侦听器。我正在考虑使用findByView(activityLayoutId)来获取此视图,但这似乎不是正确或最好的方式。感谢
答案 0 :(得分:20)
如果您正在寻找一种方法将您的内容视图作为Activity#setContentView(int)
后的视图,那么您可以在布局的最外层元素上设置ID:
android:id="@+id/entire_view"
并在onCreate
之后的setContentView
方法中引用它:
View view = getViewById(R.id.entire_view);
view.setOnTouchListener( ...
答案 1 :(得分:4)
像这样(在onCreate
中):
setContentView(R.layout.activity_main);
View view = findViewById(R.id.main);
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view,MotionEvent event) {
return true;
}
});
答案 2 :(得分:0)
活动onCreate()
方法:
onCreate(){
setContentView(R.id.yourMainLayout);
View contentView = (View)findViewById(R.id.yourMainLayout);
contentView.setOnTouchListener((View.OnTouchListener)this);
}
除非有人知道更好的方法。