简体   繁体   English

如何重置计时器中的秒数

[英]How to reset seconds in timer

Ho to reset seconds (it's "i" variable) when it's over 60? Ho超过60时要重置秒(它是“ i”变量)吗? I tried to put it into the if but it didn't work. 我试图将它放到if中,但是没有用。

SeekBar bar=findViewById(R.id.seekBar2);
final TextView textView=(TextView) findViewById(R.id.textView);


bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
        int minute=0;
        if(i>60) {
            minute++;
        }

        textView.setText(String.valueOf(minute)+":"+String.valueOf(i));

    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {

    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {

    }
});

Assuming you want the variable i to become 0 when it reaches 60,you just need to apply ' % ' modulus operator. 假设您希望变量i在达到60时变为0,只需要应用'%'模运算符即可。

for ex: 例如:

i = i % 60

If you want to reset the SeekBar , simply use seekbar.setProgress(0); 如果要重置SeekBar ,只需使用seekbar.setProgress(0);

Example

@Override
    public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
        int minute=0;
        if(i>60) {
            seekbar.setProgress(0); //will reset the seekbar
            minute++;
        }
bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
    int minute=0;
    if(i>60) {
        minute++;
        i = 0;
    }

    textView.setText(String.valueOf(minute)+":"+String.valueOf(i));

}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {

}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {

}

}); });

You can calculate as 您可以计算为

int minute = i/60;
int secs = i - (60 * minute);
textView.setText(String.valueOf(minute)+":"+String.valueOf(secs));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM