Android Как зарегистрировать OnTouchEvent для просмотра всего основного содержимого Activity? - PullRequest
15 голосов
/ 12 марта 2011

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

Ответы [ 3 ]

21 голосов
/ 12 марта 2011

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

android:id="@+id/entire_view"

и ссылаться на него в вашем onCreate методе после setContentView:

View view = getViewById(R.id.entire_view);
view.setOnTouchListener( ...
4 голосов
/ 16 октября 2015

Как это (в 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;

                                    }
                                });
0 голосов
/ 12 марта 2011

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

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

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

...