2014-03-04 91 views
2

我正在尝试创建一个仅在例如3秒后可点击的按钮。它应该显示倒计时,当达到0时,可以点击按钮并执行一个动作。 例如,当活动被调用时,按钮首先显示“3”并倒计数到“0”,然后才能点击按钮。按钮仅在X秒后可点击

任何想法如何实现这一目标?

+5

使用计数器第一和计数3秒,直到该组'点击= FALSE'到按钮, 3秒后将其设置为true。 – InnocentKiller

+0

我需要为此构建一个线程,对吗?还是一个活动有一个实施的更新方法,可以计算秒? – user2410644

回答

9

你应该使用CountDownTimer为:

timer = new CountDownTimer(3000, 1000) { 
    @Override public void onTick(long millisUntilFinished) { 
    button.setText("count down " + millisUntilFinished); 
    } 
    @Override public void onFinish() { 
    button.setOnClickListener(onClickListener); 
    } 
}; 

下方某处:

timer.start() 
+0

要试一试,谢谢你的回复 不要忘记setText()方法的millisUntilFinished前的(int)强制转换! – user2410644

+0

是的,如果你想打印倒计时字符串,你应该做一些像'button.setText(“count down”+ Math.floor(millisUntilFinished/1000));' – injecteer

5
button.setEnabled(false); 

    new CountDownTimer(3000, 1000) { 

    public void onTick(long millisUntilFinished) { 
     button.setText("Wait for " + (millisUntilFinished/1000) + " seconds"); 
    } 

    public void onFinish() { 
     button.setEnabled(true); 
     button.setText("Press me!"); 
    } 
    }.start();