我希望完整代码在Android Studio中停用Button
一段时间,例如 2分钟。谢谢你的帮助。
protected void onclick(View v){
bwasta = (Button) findViewById(R.id.btDes);
new CountDownTimer(10000, 10) { //Set Timer for 10 seconds
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
bwasta.setEnabled(true);
bwasta.setEnabled(false);
}
}.start();
答案 0 :(得分:1)
这可能会帮助你。
Button bwasta = (Button) findViewById(R.id.btDes);
bwasta.setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2*
60*
1000);//min secs millisecs
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
YourActivityName.this.runOnUiThread(new Runnable() {
@Override
public void run() {
bwasta.setEnabled(true);
}
});
}
}).start();
答案 1 :(得分:1)
Thread.sleep()
实际上,关于Thread.sleep()
的不准确(根据OP的经验)here,已经有一个问题和答案。
然后,答案会使用ScheduledThreadPoolExecutor
方法支持schedule()
的准确性。
执行以下操作:
Button bwasta = (Button) findViewById(R.id.btDes);
bwasta.setEnabled(false);
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.schedule(new new Runnable() {
@Override
public void run() {
YourActivityName.this.runOnUiThread(new Runnable() {
@Override
public void run() {
bwasta.setEnabled(true);
}
});
}
}, 2, TimeUnit.MINUTES);
答案 2 :(得分:0)
您可以使用mHandler.postDelayed(mRunnable,mTime)函数来实现此目的
Button bwasta = (Button) findViewById(R.id.btDes);
bwasta.setEnabled(false);
bwasta.postDelayed(new Runnable() {
public void run() {
bwasta.setEnabled(true);
}
}, 2*60*1000);