2012-06-27 4 views
1

Je veux imprimer quelque chose pendant que mon bouton est enfoncé (pas après qu'il soit relâché). Au moment où j'ai, mais il ne fonctionne qu'une fois ...Bouton android tout en appuyant sur

button.setOnTouchListener(new View.OnTouchListener() { 
    public boolean onTouch(View v, MotionEvent event) { 
     if(event.getAction() == MotionEvent.ACTION_DOWN) { 
      System.out.println("pressed"); 
      return true; 
     } 
     return false; 
    } 
}); 
+0

supprimer le "return true;" – VinceFR

+0

Son dans le même: \ – user1477414

+0

Souhaitez-vous qu'il soit continuellement imprimé "pressé" sur la console? Ou voulez-vous seulement montrer une fois? – WindyB

Répondre

2

System.out ne fonctionne pas dans un appareil Android (ne sera pas vous montrer quoi que ce soit sur l'appareil) et si vous avez une vue de texte que vous pouvez définir le texte sur votre MotionEvent.ACTION_DOWN que vous faites déjà et sur le MotionEvent.ACTION_UP vous définissez votre texte de votre affichage de texte à vide. Quelque chose comme ceci:

public class TestActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main2); 
     final TextView textView = (TextView) findViewById(R.id.textview); 
     final Button button = (Button) findViewById(R.id.button); 
     button.setOnTouchListener(new View.OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if(event.getAction() == MotionEvent.ACTION_DOWN){ 
        textView.setText("Button Pressed"); 
       } 
       if(event.getAction() == MotionEvent.ACTION_UP){ 
        textView.setText(""); //finger was lifted 
       } 
       return true; 
      } 

     }); 
    } 

} 
+1

Données 'System.out' peuvent être vu dans LogCat. – iNan

+0

mais encore serait inutile sur le périphérique – Raykud

+0

la façon correcte d'afficher des messages sur le LogCat utilise la méthode Log ... ie. Log.e ("myClass", "MyMessage"); – Raykud

3

essayer ceci CONTINU imprimer un message appuyé pendant que vous le pressant.

button.setOnTouchListener(new View.OnTouchListener() { 
    public boolean onTouch(View v, MotionEvent event) { 
      System.out.println("pressed"); 
      return false; 
    } 
}); 
+0

Ne fonctionnera que lorsque l'utilisateur se déplace doigt et ACTION_MOVE est détecté .. – OneBigQuestion

Questions connexes