ANDROID: Comment mettre un délai après la poussée d'un bouton?

J'ai un bouton et quand il est pressé, il joue un fichier audio. Je souhaite mettre un délai de 5 secondes sur le bouton afin que les utilisateurs ne fassent pas le bouton et jouent le son à plusieurs reprises. Je suppose que je le veux vraiment pour que le bouton soit désactivé pendant 5 secondes après qu'il soit poussé. Est-ce que quelqu'un sait comment faire ça?

  • Comment utiliser wrap_content avec une largeur maximale?
  • La méthode onClick ne fonctionne pas correctement après la décroissance de NestedScrollView
  • Android à l'aide d'Analytics Firebase avec Google Analytics
  • Auditeur d'animation Android
  • Rétablissement programmé d'une hauteur TextView
  • Android Studio - avec Junit 4.12 "!!! JUnit version 3.8 ou ultérieure attendue: "
  • Comment obtenir le format de l'heure en utilisant le code ISO du pays dans Android?
  • Android: comment ajouter le support de la boîte d'alerte javascript dans WebViewClient?
  • WindowSoftInputMode = "adjustResize" ne fonctionne pas avec l'action translucide / navbar
  • BadParcelableException dans le code google maps
  • Configurez une application Qt5 5.7 pour Android avec CMake
  • Exécuter ndk-gdb avec erreur de package non trouvée sur le téléphone motorola
  • 3 Solutions collect form web for “ANDROID: Comment mettre un délai après la poussée d'un bouton?”

    Dans votre OnClickListener pour le bouton:

     myButton.setEnabled(false); Timer buttonTimer = new Timer(); buttonTimer.schedule(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override public void run() { myButton.setEnabled(true); } }); } }, 5000); 

    Cela désactivera le bouton lorsqu'il sera cliqué, et l'activera après 5 secondes.

    Si l'événement de clic est traité dans la classe qui étend la vue plutôt que dans une activité, faites la même chose, mais runOnUiThread avec post .

    Vous pouvez désactiver votre bouton, puis utiliser la méthode postDelayed sur votre bouton.

     myButton.setEnabled(false); myButton.postDelayed(new Runnable() { @Override public void run() { myButton.setEnabled(true); } }, 5000); 

    Ceci est similaire à la solution Timer, mais cela pourrait mieux gérer les changements de configuration (par exemple, si l'utilisateur tourne le téléphone)

    Voici.

     ((Button) findViewById(R.id.click)) .setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ((Button) findViewById(R.id.click)).setEnabled(false); new Handler().postDelayed(new Runnable() { @Override public void run() { ((Button) findViewById(R.id.click)) .setEnabled(true); } }, 5000); } }); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.