Mam przycisk i po jego naciśnięciu odtwarza plik audio. Chcę umieścić 5-sekundowe opóźnienie na przycisku, aby użytkownicy nie musieli zacieruwać przycisku i odtwarzać dźwięk w kółko. Domyślam się, że tak naprawdę chcę, aby przycisk był wyłączony przez 5 sekund po jego naciśnięciu. Czy ktoś wie, jak to zrobić?ANDROID: Jak ustawić opóźnienie po naciśnięciu przycisku?
7
A
Odpowiedz
29
W swojej onClickListener dla przycisku:
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);
ten będzie wyłączyć przycisk po kliknięciu, i włączyć go ponownie po upływie 5 sekund.
Jeśli zdarzenie kliknięcia jest obsługiwane w klasie, która rozszerza widok, a nie w działaniu, wykonaj to samo, ale zamień runOnUiThread
na post
.
+0
działa idealnie! Dziękuję Ci bardzo – fargoh
2
Proszę bardzo.
((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);
}
});
18
Można wyłączyć przycisk, a następnie użyć metody postDelayed na przycisku.
myButton.setEnabled(false);
myButton.postDelayed(new Runnable() {
@Override
public void run() {
myButton.setEnabled(true);
}
}, 5000);
ten jest podobny do rozwiązania timera, ale może lepiej obsługiwać zmianę konfiguracji (na przykład, jeśli użytkownik obrócić telefon)
Powiązane problemy
- 1. opóźnienie po naciśnięciu przycisku na zestawie słuchawkowym w iphone
- 2. Ignorowanie UIGestureRecognizer po naciśnięciu przycisku
- 3. Zmiana koloru tekstu przycisku po naciśnięciu przycisku
- 4. Jak zabić działanie po naciśnięciu przycisku Wstecz?
- 5. Przejdź do adresu URL po naciśnięciu przycisku OK po naciśnięciu przycisku
- 6. Powtórz czynność po naciśnięciu długiego przycisku.
- 7. Android - Menu podręczne po naciśnięciu przycisku listy?
- 8. Odrzuć DatePickerDialog po naciśnięciu przycisku cofania
- 9. Ciągle zwiększaj wartość całkowitą po naciśnięciu przycisku.
- 10. wywołanie funkcji po naciśnięciu przycisku - pyqt
- 11. UISearchController odrzuca VC po naciśnięciu przycisku anulowania
- 12. Ustaw AVPlayerViewController odtwarzane po naciśnięciu przycisku
- 13. Wykrywanie po naciśnięciu przycisku "Powrót do aplikacji"
- 14. Mieć wiele komend po naciśnięciu przycisku
- 15. Zapisz stan po naciśnięciu przycisku Wstecz.
- 16. Wyjątek po naciśnięciu przycisku na facebooku logowanie
- 17. Widok listy: Jak pozostać wyróżniony/wybrany po naciśnięciu przycisku Wstecz?
- 18. VBA Jak zmusić funkcję do powrotu po naciśnięciu przycisku formularza
- 19. Jak zamknąć klawiaturę po naciśnięciu przycisku "Szukaj" paska UISearch?
- 20. Jak określić nazwę użytkownika i hasło po naciśnięciu przycisku dokowania?
- 21. Jak zrobić wzrost UIPickerView od dołu aplikacji po naciśnięciu przycisku?
- 22. Jak zmienić kolor przycisku koloru po naciśnięciu w systemie Android?
- 23. Jak ukryć klawiaturę po naciśnięciu przycisku wstecz UINavigationBar na ios
- 24. jak zmienić obraz przycisku ImageButton po jego naciśnięciu i zwolnieniu?
- 25. Jak wywołać makro po naciśnięciu przycisku Odśwież lub Odśwież wszystko?
- 26. Jak ponownie wczytać stronę po naciśnięciu przycisku BackState?
- 27. Jak sprawić, by element nie tracił ostrości po naciśnięciu przycisku?
- 28. Jak odświeżyć Gridview po naciśnięciu przycisku w asp.net
- 29. Jak wyróżnić przycisk po naciśnięciu?
- 30. Jquery Opóźnienie Po Kliknij
ale 5 sekund opóźnienia może dać użytkownikowi wrażenie app samopoczucia brak odpowiedzi –
Jeśli zmieni się długość dźwięku, być może warto rozważyć oddzwanianie w odtwarzaczu multimedialnym - http://stackoverflow.com/questions/6001497/calling-another-activity-when-mediaplayer-get-finished-playing - zamiast wywoływać aktywność, możesz po prostu ponownie włączyć swój przycisk –
użyj 'CountDownTimer' – Houcine