2010-01-10 10 views
8

Quiero detectar cuándo un usuario toca en cualquier parte de una vista en mi aplicación Android.Cómo detectar cuándo un usuario toca una vista en Android

Mi código es el siguiente:

linearLayout = (LinearLayout) findViewById(R.id.linearLayout); // main layout 
// ... 
linearLayout.setOnTouchListener(this); 
// ... 
public boolean onTouch(View v, MotionEvent event) { 
    Toast.makeText(this, "Touch!", 1000); 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
     Toast.makeText(this, "Down!", 1000); 
     return true; 
    } 
    return false; 
} 

... pero cuando hago clic en la vista, no consigo pan tostado!

¿Los eventos táctiles funcionan en el emulador? ¿O tengo algo mal en mi código?

+0

que estaba buscando mismas soluciones. Gracias Biswajit –

Respuesta

12

Creo que el problema es con su código de visualización de mensajes en lugar de su código de detección táctil.

Está creando el objeto Toast pero no lo está visualizando. Debe llamar al show() method.

Además, el argumento duration a the makeText() method debe ser uno de LENGTH_SHORT o LENGTH_LONG.

Probar:

Toast.makeText(this, "Down!", Toast.LENGTH_LONG).show(); 
+4

+1. Estoy * siempre * olvidando agregar '.show()' a mis brindis! –

+0

d'oh! + 1 voto + 1 tick + gracias x 2 –

+0

Todos hemos estado allí ... bueno, de todos modos ... dos veces. –

Cuestiones relacionadas