文字在CountDownTimer中不显示字符串

问题描述:

我有一个CountDownTimer类设置倒计时,当用户点击某个按钮时将开始倒计时。
这是包括CountDownTimer文字在CountDownTimer中不显示字符串

public class play extends Activity implements View.OnClickListener{ 

     private TapCountDownTimer countDownTimer; 
     private final long startTime = 10; 
     private final long interval = 1; 
     private TextView countdowntext; 


     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
      setContentView(R.layout.play); 

     countDownTimer = new TapCountDownTimer(startTime, interval); 
     countdowntext = (TextView)findViewById(R.id.countdowntext); 
     countdowntext.setText(String.valueOf(startTime)); 

      Button buttonstart = (Button)findViewById(R.id.stopbutton); 
        buttonstart.setOnClickListener(new View.OnClickListener() { 

        public void onClick(View v){ 
         countDownTimer.start(); 
         }     
       }); 

      Button buttonstop = (Button)findViewById(R.id.stopbutton); 
        buttonstop.setOnClickListener(new View.OnClickListener() { 

        public void onClick(View v){ 
         countDownTimer.cancel(); 
         }     
       }); 

    public class TapCountDownTimer extends CountDownTimer { 

     public TapCountDownTimer(long startTime, long interval) 
      { 
       super(startTime, interval); 
      } 

     @Override 
     public void onTick(long millisUntilFinished) 
      { 
      countdowntext.setText(Long.toString(millisUntilFinished/1)); 

      } 
     @Override 
     public void onFinish() 
      { 
      countdowntext.setText("Time's up!"); 
      } 
     } 
    } 

我设置文本在此行

countdowntext.setText(Long.toString(millisUntilFinished/1)); 

的代码,但它不工作,文本显示,而不是倒计时“时间到”。
有谁知道如何解决这个问题?

+0

也许这是因为'interval'设置为'1' – Titus

+0

@ FrankN.Stein好吧我会改变 – RichFounders

您的startTimeinterval错误设置在
只需乘以1000,因为您需要毫秒

另请注意,您不需要 s,用于保持这样的低值。
整数会做。

private final int startTime = 10000; // 10 secs 
    private final int interval = 1000; // 1s = 1000 ms 

而且这是没有意义的:millisUntilFinished/1(将任意数量由1给你原来的号码)。
它必须是millisUntilFinished/1000