实现倒计时有多种方法,以下为一种基于Handler的方法实现:
- 首先声明需要显示倒计时的TextView和需要倒计时执行的时间totalTime:
private TextView countdownText;
private int totalTime = 60; //倒计时总时间(单位:秒)
- 在onCreate方法中初始化TextView并启动倒计时:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
countdownText = findViewById(R.id.countdown_text);
startCountdown();
}
- 定义倒计时Handler并在其中实现倒计时逻辑,每隔1秒更新TextView的显示:
private Handler countdownHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (totalTime > 0) {
countdownText.setText(totalTime + "s");
totalTime--;
countdownHandler.sendEmptyMessageDelayed(0, 1000);//1秒后再次执行
} else {
countdownText.setText("倒计时结束");
}
}
};
- 启动倒计时:
private void startCountdown() {
countdownHandler.sendEmptyMessage(0);
}
完整代码:
public class MainActivity extends AppCompatActivity {
private TextView countdownText;
private int totalTime = 60; //倒计时总时间(单位:秒)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
countdownText = findViewById(R.id.countdown_text);
startCountdown();
}
private Handler countdownHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (totalTime > 0) {
countdownText.setText(totalTime + "s");
totalTime--;
countdownHandler.sendEmptyMessageDelayed(0, 1000);//1秒后再次执行
} else {
countdownText.setText("倒计时结束");
}
}
};
private void startCountdown() {
countdownHandler.sendEmptyMessage(0);
}
}
您好,以下是一个简单的Android倒计时代码实现:
- 在布局文件中添加一个TextView用来展示倒计时:
<TextView
android:id="@+id/tv_countdown"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:textColor="#000000"
android:text="10" />
- 在Activity中获取TextView并设置倒计时:
public class MainActivity extends AppCompatActivity {
private TextView tvCountdown;
private CountDownTimer countDownTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvCountdown = findViewById(R.id.tv_countdown);
// 倒计时10秒,每1秒更新一次
countDownTimer = new CountDownTimer(10000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// 更新TextView的文本
tvCountdown.setText(String.valueOf(millisUntilFinished / 1000));
}
@Override
public void onFinish() {
// 倒计时结束,执行相应操作
Toast.makeText(MainActivity.this, "倒计时结束", Toast.LENGTH_SHORT).show();
}
};
// 启动倒计时
countDownTimer.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
// 取消倒计时
countDownTimer.cancel();
}
}
这样就实现了一个简单的Android倒计时功能。您也可以根据需要自行修改倒计时的时间、更新间隔等参数。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/115451.html