我有一个按钮,当它按下时,它播放一个音频文件。我想在按钮上放置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