在android studio中编写程序在activity打开时开始10分钟倒计时并显示倒计时倒计时结束后名为dazeicisu且初始值为0的整形数据加1 并重新开始倒计时dazeicisu的最大值为3。
以下是一种实现方式:
-
在布局文件中添加一个TextView用于显示倒计时,和一个Button用于模拟打开Activity的操作。
-
在Activity中定义一个CountDownTimer对象,用于实现倒计时。
-
在Activity中定义一个整型变量dazeicisu,初始值为0。
-
在Activity的onCreate方法中,为Button设置点击事件,点击时启动CountDownTimer对象开始倒计时。
-
在CountDownTimer对象的onTick方法中更新TextView的显示,每秒钟减一。
-
在CountDownTimer对象的onFinish方法中判断dazeicisu是否达到最大值,如果未达到则加1并重新开始倒计时,否则弹出提示。
-
在Activity的onPause方法中停止CountDownTimer对象,避免出现内存泄漏。
代码如下:
布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/countdown_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:layout_centerInParent="true" />
<Button
android:id="@+id/start_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
Activity代码:
public class MainActivity extends AppCompatActivity {
private TextView countdownTextView;
private Button startButton;
private CountDownTimer countDownTimer;
private int dazeicisu = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
countdownTextView = findViewById(R.id.countdown_textview);
startButton = findViewById(R.id.start_button);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startCountdown();
}
});
}
private void startCountdown() {
countDownTimer = new CountDownTimer(10 * 60 * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
int seconds = (int) (millisUntilFinished / 1000);
countdownTextView.setText(String.format("%02d:%02d", seconds / 60, seconds % 60));
}
@Override
public void onFinish() {
if (dazeicisu < 3) {
dazeicisu++;
startCountdown();
} else {
Toast.makeText(MainActivity.this, "已达到最大值", Toast.LENGTH_SHORT).show();
}
}
}.start();
}
@Override
protected void onPause() {
super.onPause();
if (countDownTimer != null) {
countDownTimer.cancel();
}
}
}
原文地址: https://www.cveoy.top/t/topic/bIql 著作权归作者所有。请勿转载和采集!