【问题标题】:Button only clickable after X seconds按钮只能在 X 秒后点击
【发布时间】:2014-03-04 12:32:22
【问题描述】:

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

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

【问题讨论】:

  • 首先使用计数器并计数 3 秒,直到将 clickable=false 设置为按钮并在 3 秒后将其设置为 true。
  • 我需要先建立一个线程,对吧?或者一个活动是否有一个能够计算秒数的已实现更新方法?

标签: android button delay countdown


【解决方案1】:

您应该为此使用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()

【讨论】:

  • 去试试看,谢谢回复别忘了 setText() 方法的millisUntilFinished前面的(int) cast!
  • 是的,如果你想打印倒计时字符串,你应该像button.setText( "count down " + Math.floor( millisUntilFinished / 1000 ) );
【解决方案2】:
  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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多