2011-03-11 5 views
10

Ho implementato onTouchEvent (TouchEvent) sulla mia attività. Tuttavia, vorrei sapere quali passaggi sono necessari per registrarlo come evento per la vista Contenuto principale delle attività. Voglio impostare onTouchEvent per la vista che copre l'intero spazio dello schermo dell'attività. c'è un setContentView() che accetta un id di layout. Come registro l'attività come ascoltatore di onuchEvent nella vista del contenuto principale. Sto considerando FindByView (activityLayoutId) per ottenere questa vista, ma questo non sembra proprio il modo giusto o migliore. GrazieAndroid Come registrare OnTouchEvent per l'intera vista del contenuto principale dell'attività?

+0

oppure è sufficiente implementare View.onTouchEvent nell'attività e la vista si registrerà automaticamente con questo? – Androider

+0

Sto solo cercando come attivare l'evento touch sullo schermo di tutta l'attività, non su alcune viste aggiunte a questo schermo. – Androider

risposta

16

Se siete alla ricerca di un modo per ottenere la visualizzazione di contenuti come View dopo Activity#setContentView(int), allora è possibile impostare un ID sul più esterno elemento del layout:

android:id="@+id/entire_view" 

e farvi riferimento in il metodo di onCreate dopo setContentView:

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

Attività onCreate() metodo:

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

A meno che qualcuno conosce un modo migliore.

+1

potresti ancora utilizzare R.layout.yourMainLayout e all'interno del layout fornire youMainLayout come id – Androider

1

Ti piace questa (in 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; 

            } 
           });