使用搜索栏设置计时器

时间:2016-11-22 11:40:31

标签: java android string-comparison android-seekbar

我有一个应用程序,其中我使用分钟和秒作为文本视图,随着搜索栏的拖动而改变,它工作正常。我唯一的问题是,当它达到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);

        }

5 个答案:

答案 0 :(得分:1)

为什么不使用

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

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

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

答案 1 :(得分:0)

也绝不会将字符串与==进行比较,因为StringObject,而是使用equals()。例如if (secondString.equals("0")),但android_griezmann's answer就足够了。

没有检查的另一种解决方案是:

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

因为我想知道5:00,6:00等会发生什么......

答案 2 :(得分:0)

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

进行比较
      if (secondString.equals("0")) { secondString = "00";  }

同时检查你是否在TextView的xml中设置了maxLength属性。有时可能是原因。

答案 3 :(得分:0)

secondString=="0"

在cpp工作。 在Java / Android中你应该写

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

答案 4 :(得分:0)

使用正则表达式标识一个数字。

if (secondString.matches("\\d") ) {
    secondString = "0" + secondString;
}