要在Android应用中实现倒计时功能,可以使用CountDownTimer类。以下是一个简单的示例:
```java
public class MainActivity extends AppCompatActivity {
private TextView countdownText;
private Button startButton;
private CountDownTimer countDownTimer;
private long timeLeftInMillis;
private boolean timerRunning;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
countdownText = findViewById(R.id.countdown_text);
startButton = findViewById(R.id.start_button);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (timerRunning) {
stopTimer();
} else {
startTimer();
}
}
});
}
private void startTimer() {
timeLeftInMillis = 60000; // 设置倒计时时间,单位为毫秒
countDownTimer = new CountDownTimer(timeLeftInMillis, 1000) {
@Override
public void onTick(long millisUntilFinished) {
timeLeftInMillis = millisUntilFinished;
updateCountdownText();
}
@Override
public void onFinish() {
timerRunning = false;
startButton.setText("Start");
}
}.start();
timerRunning = true;
startButton.setText("Stop");
}
private void stopTimer() {
countDownTimer.cancel();
timerRunning = false;
startButton.setText("Start");
}
private void updateCountdownText() {
int minutes = (int) (timeLeftInMillis / 1000) / 60;
int seconds = (int) (timeLeftInMillis / 1000) % 60;
String timeLeftText = String.format(Locale.getDefault(), "%02d:%02d", minutes, seconds);
countdownText.setText(timeLeftText);
}
}
```
在布局文件中,添加一个TextView来显示倒计时文本,一个Button来启动/停止倒计时。
```xml
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center"> android:id="@+id/countdown_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="48sp" android:text="00:00" android:layout_marginBottom="32dp"/>
```
以上代码中,使用CountDownTimer类来实现倒计时功能。在startTimer()方法中,通过CountDownTimer的构造函数设置倒计时的总时间和每个倒计时间隔的时长。onTick()方法会在每个间隔时被调用,更新倒计时文本。onFinish()方法会在倒计时结束时被调用。
在updateCountdownText()方法中,将剩余时间格式化为分钟:秒的形式,并更新到TextView中。
startButton的点击事件处理程序中,根据timerRunning状态决定启动或停止倒计时。
以上代码只是一个示例,你可以根据自己的需求,修改倒计时的总时间、间隔时长等参数。