Ich habe einen Knopf und wenn er gedrückt wird, spielt er eine Audiodatei ab. Ich möchte eine 5-sekündige Verzögerung auf den Button legen, damit die User den Button nicht mehr knacken und den Sound immer und immer wieder spielen. Ich schätze, was ich wirklich will, dass die Taste nach dem Drücken für 5 Sekunden deaktiviert wird. Weiß jemand, wie man das macht?ANDROID: Wie man eine Verzögerung setzt, nachdem eine Taste gedrückt wird?
Antwort
In Ihrem OnClickListener für die Schaltfläche:
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);
Dies wird die Schaltfläche deaktivieren, wenn geklickt hat, und ermöglicht es wieder nach 5 Sekunden.
Wenn das Klickereignis in einer Klasse behandelt wird, die View statt in einer Aktivität erweitert, machen Sie dasselbe, aber ersetzen Sie runOnUiThread
durch post
.
funktioniert perfekt! vielen Dank – fargoh
Hier gehen Sie.
((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);
}
});
können Sie Ihre Taste deaktivieren, verwenden Sie dann die postDelayed Methode auf den Button aus.
myButton.setEnabled(false);
myButton.postDelayed(new Runnable() {
@Override
public void run() {
myButton.setEnabled(true);
}
}, 5000);
Diese zur Timer-Lösung ähnlich ist, aber es könnte besser Konfigurationsänderung (zum Beispiel, wenn der Benutzer das Telefon drehen) hand
- 1. Wie überprüft man, wie lange eine Taste gedrückt wird?
- 2. Autohotkey Wie man eine Maustaste gedrückt hält, während eine Taste gedrückt wird?
- 3. Wie erkennt man, wie oft eine Taste nacheinander gedrückt wurde?
- 4. Lesen, wenn eine Taste gedrückt wird Java
- 5. Unerwünschter Signalton, wenn eine Taste gedrückt wird
- 6. Wie wird eine Taste hervorgehoben, wenn gedrückt wird?
- 7. Strg-Taste gehalten, nachdem eine Strg-Taste gedrückt Ereignis und Strg-Taste Veranstaltung Simulation
- 8. Wie erkennt man eine Taste in TypeScript gedrückt?
- 9. Angular - Wie wird die Seite aktualisiert, nachdem eine Post-Taste gedrückt wurde?
- 10. Wie lösche ich das Textfeld, wenn eine Taste gedrückt wird?
- 11. Wie erkennen, wenn eine Hotkey (Shortcut-Taste) gedrückt wird
- 12. Wie man eine JavaScript-Funktion in einem Eingabefeld ausführt, wenn eine Taste gedrückt wird
- 13. Eine Aktion wiederholen, solange die Taste gedrückt wird
- 14. setBackgroundDrawable funktioniert korrekt; bis eine andere Taste gedrückt wird, warum?
- 15. Überprüfen, ob eine Taste in der Konsolenanwendung gedrückt wird C#
- 16. swift hidden Etikett, wenn eine Taste gedrückt wird
- 17. So erkennen Sie, ob eine Taste gedrückt wird
- 18. JavaScript-Funktion auslösen, wenn eine Taste in fckeditor gedrückt wird
- 19. Der Druck, mit dem eine Taste gedrückt wird
- 20. Einen Ton abspielen, wenn eine Taste gedrückt wird
- 21. xLib XNextEvent überprüft, ob eine Taste gedrückt wird
- 22. Ändern einer JLabel, wenn eine Taste gedrückt wird
- 23. Wie Sie eine Funktion aufrufen, wenn eine Taste in Python gedrückt wird
- 24. Wie weiß man, welche Taste gedrückt wurde?
- 25. Die Umschalttaste wird ignoriert, nachdem eine andere Taste gedrückt wurde, schlechte Umschalttaste. Wie erkenne ich, wann es veröffentlicht wird?
- 26. Change TextBox.text auf eine beliebige Taste gedrückt
- 27. Wie kann ich eine neue Szene einblenden, wenn eine Taste gedrückt wird?
- 28. Wie man eine Tabellenzeile dupliziert, wenn eine Taste geklickt wird
- 29. Java - Wie man Jelabel und JTextPane zu JPanel hinzufügt, wenn eine Taste gedrückt wird
- 30. Wie erkennt man den Status der Umschalttaste, wenn eine Taste in C gedrückt wird?
aber eine Verzögerung von 5 Sekunden dem Benutzer den Eindruck der app Wesen kann geben non-responsive –
Falls sich die Länge des Audiomaterials ändert, könnten Sie vielleicht einen Rückruf auf dem Media Player in Erwägung ziehen - http://stackoverflow.com/questions/6001497/calling-another-activity-when-mediaplayer-get-finished-playing - Anstatt die Aktivität aufzurufen, können Sie einfach Ihre Taste wieder aktivieren –
Verwenden Sie "CountDownTimer" – Houcine