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à?
10
A
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;
}
});
oppure è sufficiente implementare View.onTouchEvent nell'attività e la vista si registrerà automaticamente con questo? – Androider
Sto solo cercando come attivare l'evento touch sullo schermo di tutta l'attività, non su alcune viste aggiunte a questo schermo. – Androider