2010-01-10 4 views
8

Je souhaite détecter lorsqu'un utilisateur tape n'importe où dans une vue de mon application Android.Comment détecter lorsqu'un utilisateur tape sur une vue dans Android

Mon code ressemble à ceci:

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; 
} 

... mais quand je clique sur la vue, je ne suis pas Toast!

Les événements tactiles fonctionnent-ils dans l'émulateur - ou ai-je quelque chose de mal dans mon code?

+0

Je cherchais mêmes solutions. Merci Biswajit –

Répondre

12

Je pense que le problème est avec votre code d'affichage de message plutôt que votre code de détection tactile.

Vous créez l'objet Toast mais vous ne l'affichez pas. Vous devez appeler le show() method.

En outre, l'argument duration à the makeText() method doit être l'un des LENGTH_SHORT ou LENGTH_LONG.

Essayez:

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

+1. J'oublie toujours d'ajouter '.show()' à mes toasts! –

+0

d'oh! + 1 vote + 1 tick + merci x 2 –

+0

Nous avons tous été là ... eh bien, j'ai de toute façon ... deux fois. –

Questions connexes