Android如何为整个Activity主内容视图注册OnTouchEvent?

时间:2011-03-11 22:46:30

标签: android android-activity touch

我在我的活动上实现了onTouchEvent(TouchEvent)。但是,我想知道将此注册为活动主内容视图的事件需要哪些步骤。我想为覆盖整个活动屏幕空间的视图设置onTouchEvent。有一个setContentView(),它采用布局ID。如何将活动注册为主内容视图的ontouchEvent侦听器。我正在考虑使用findByView(activityLayoutId)来获取此视图,但这似乎不是正确或最好的方式。感谢

3 个答案:

答案 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);
 }

除非有人知道更好的方法。