2016-11-22 85 views
0

我有一个应用程序,我已经使用分钟和秒作为一个文本视图,拖动搜索栏,它工作正常。我唯一的问题是,当它达到10分钟(我已经设置了最大值为600,这是十分钟),它应该显示像这样,例如10:00,但不幸的是它显示在这样的10:0 我已经测试过它以下两种仿真器和genymotion是我的代码设置定时器与搜索栏

SeekBar seekBar = (SeekBar)findViewById(R.id.seekBarController); 
    final TextView timerTextView = (TextView)findViewById(R.id.timerTextview); 

    seekBar.setMax(600); 
    seekBar.setProgress(30); 
    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean b) { 

      int minutes = progress/60; 
      int seconds = progress - minutes * 60; 


      String secondString = Integer.toString(seconds); 

      if (secondString == "0") { 

       secondString = "00"; 

      } 
       timerTextView.setText(Integer.toString(minutes) + ":" + secondString); 

     } 
+0

您是否尝试过在调试器中运行它,并检查什么是你的变量的值,当你达到600? –

回答

1

你为什么不使用

if (seconds == 0) { 
    secondString = "00"; 
} 

if (secondString.equalsIgnoreCase("0")) { 
    secondString = "00"; 
} 

字符串比较可能有一些问题!

+0

谢谢你帮助了我:)但你能否理解我这是什么逻辑,为什么不在这种情况下工作的字符串? – Rumaan

+0

@Rumaan简单的原因是字符串不会与==运算符相比较。有一种具体的方法可以做到这一点。查看更新的答案 –

+0

知道了,谢谢 – Rumaan

0

也从来没有比较字符串与==,因为StringObject,而不是使用equals()。例如if (secondString.equals("0")),但android_griezmann's answer应该足够了。

不检查的另一个解决办法是:

timerTextView.setText(String.format("%d:%02d", minutes, seconds) 

,因为我不知道发生在5:00,6:00等..

0

只是调试和检查您是否进入,如果条件。如果没有,请尝试使用

 if (secondString.equals("0")) { secondString = "00"; } 

另外检查是否已设置TextView.Sometimes可能是原因的XML最大字段属性比较。

0
secondString=="0" 

在cpp中有效。在Java中/ Android的 你应该写

if (secondString.equals("0")) { secondString = "00"; }