Android Как зарегистрировать OnTouchEvent для просмотра всего содержимого основной активности?

Я реализовал onTouchEvent (TouchEvent) в своей деятельности. Тем не менее, я хотел бы знать, какие шаги необходимы для регистрации этого в качестве события для основного вида содержимого. Я хочу установить onTouchEvent для представления, которое покрывает все пространство экрана активности. существует setContentView(), который принимает идентификатор макета. Как зарегистрировать активность в качестве приемника ontouchEvent для основного представления содержимого. Я рассматриваю findByView (activityLayoutId), чтобы получить это представление, но это не похоже на правильный или лучший способ. Благодаря

Ответ 1

Если вы ищете способ получить представление своего контента как представление после Activity#setContentView(int), тогда вы можете установить идентификатор на внешнем элементе макета:

android:id="@+id/entire_view"

и укажите его в методе onCreate после setContentView:

View view = getViewById(R.id.entire_view);
view.setOnTouchListener( ...

Ответ 2

Подобно этому (в 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;

                                    }
                                });

Ответ 3

Действия onCreate():

onCreate(){
  setContentView(R.id.yourMainLayout);
  View contentView = (View)findViewById(R.id.yourMainLayout);
  contentView.setOnTouchListener((View.OnTouchListener)this);
 }

Если кто-то не знает лучшего способа.