0
我在Android中创建倒计时时间,并且我的计时器部分完美工作。但是,我想添加一个功能,用户可以设置他们希望计时器重复的次数。这是我在执行当前的尝试如何在Android中使用时间间隔CountdownTimer
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
minutesText = (EditText) findViewById(R.id.minutesText);
secondsText = (EditText) findViewById(R.id.secondsText);
startButton = (Button) findViewById(R.id.startButton);
intervalCount = (EditText) findViewById(R.id.intervalCount);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (minutesText.getText().toString().equals("")) {
minutesInt = 0;
} else {
minutesString = minutesText.getText().toString();
minutesInt = Integer.parseInt(minutesString);
}
secondsString = secondsText.getText().toString();
if (secondsText.getText().toString().equals("")) {
secondsInt = 0;
} else {
secondsString = secondsText.getText().toString();
secondsInt = Integer.parseInt(secondsString);
}
intervalsString = intervalCount.getText().toString();
intervals = Integer.parseInt(intervalsString);
final int timerAmount = ((minutesInt * 60) + (secondsInt)) * 1000;
CountDownTimer timer = new CountDownTimer(timerAmount, 1000) {
@RequiresApi(api = Build.VERSION_CODES.N)
public void onTick(long millisUntilFinished) {
isRunning = true;
String timeLeft = String.format("%02d : %02d",
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished),
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))
);
textView.setText("Reamining: " + timeLeft);
}
public void onFinish() {
isRunning = false;
intervals--;
if (intervals > 0) {
timer.start();
}
try {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
r.play();
} catch (Exception e) {
e.printStackTrace();
}
}
};timer.start();
}
});
我的错误是在onFinish() 它不会让我用timer.start()
完美之外。非常感谢 –