我有一個按鈕,當它按下時,它播放一個音頻文件。我想在按鈕上放置5秒的延遲,以便用戶不會搗碎按鈕並反覆播放聲音。我想我真的想讓按鈕在被按下5秒後被禁用。有誰知道如何做到這一點?ANDROID:按下按鈕後如何延遲?
7
A
回答
29
在你onClickListener的按鈕:
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);
點擊時,這將禁用按鈕,5秒後再次啓用它。
如果點擊事件在擴展視圖的類中處理,而不是在活動中執行,則執行相同的操作,但用post
替換runOnUiThread
。
+0
完美的作品!非常感謝你 – fargoh
2
你在這裏。
((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
您可以禁用您的按鈕,然後在按鈕上使用postDelayed方法。
myButton.setEnabled(false);
myButton.postDelayed(new Runnable() {
@Override
public void run() {
myButton.setEnabled(true);
}
}, 5000);
這類似於定時器解決方案,但它可能會更好地處理配置改變(例如,如果用戶旋轉手機)
相關問題
- 1. 延遲按下後退按鈕android
- 2. Android:從底部按下按鈕延遲
- 3. [LibGDX]按下按鈕之間的延遲
- 4. Android按鈕延遲?
- 5. Xcode延遲按鈕
- 6. 按下按鈕後播放聲音的延遲太長
- 7. 如何實現AsyncTask以延遲按鈕
- 8. 增加按鈕延遲
- 9. MPMoviePlayerController initWithContentURL延遲按鈕ClickClick
- 10. 動畫按鈕延遲 - iPhone
- 11. Swing:啓用延遲按鈕
- 12. SceneKit按鈕顯示延遲
- 13. gui按鈕的延遲
- 14. 按下TAB按鈕時,如何延遲移動到下一個輸入欄?
- 15. 按下後按鈕按鈕
- 16. dplyr如何按組延遲
- 17. 當按下耳機按鈕時的延遲iphone
- 18. 3hr按下按鈕之間的時間延遲
- 19. 如何在HTML按鈕短暫延遲後觸發點擊?
- 20. 如何在點擊按鈕後延遲js功能
- 21. 如何在提交按鈕後延遲刪除類?
- 22. 如何讓按鈕按下後閃爍?
- 23. 最後一次按鈕點擊後的延遲動作
- 24. JavaFX Android端口聽按音量按鈕按
- 25. JS按鍵延遲
- 26. jQuery - hasClass的按鈕與延遲
- 27. Windows Phone 7開發延遲按鈕
- 28. as3中的按鈕活動延遲
- 29. jQuery,延遲按鈕重置 - twitter引導
- 30. iOS版雨燕按鈕顯示延遲
但5秒延遲可能給用戶的應用程序的存在的印象無響應 –
如果音頻的長度發生變化,或許您可以考慮在媒體播放器上進行回調 - http://stackoverflow.com/questions/6001497/calling-another-activity-when-mediaplayer-get-finished-playing - 而不是調用活動,你可以重新啓用你的按鈕 –
使用'CountDownTimer' – Houcine