Android 中的 CountDownTimer 示例
CountDownTimer 应用程序是关于设置一个以相反顺序移动的时间,因为它显示即将到来的事件中剩余的时间。 CountDownTimer 是一个准确的计时器,可用于网站或博客显示任何特殊事件的倒计时,例如生日或周年纪念日。同样,在这里让我们创建一个 Android 应用程序来学习如何创建一个简单的倒计时应用程序。因此,让我们一步一步地开始创建应用程序,直至完成。
方法
第 1 步:创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。请注意,选择Java作为编程语言。
第 2 步:使用 activity_main.xml 文件
在activity_main.xml文件中只添加一个TextView 来显示CountDownTimer。下面是activity_main.xml文件的完整代码。
activity_main.xml
MainActivity.java
package org.gfg.countdowntimer;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class MainActivity extends AppCompatActivity {
// Initializing my textView
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
// Time is in millisecond so 50sec = 50000 I have used
// countdown Interveal is 1sec = 1000 I have used
new CountDownTimer(50000, 1000) {
public void onTick(long millisUntilFinished) {
// Used for formatting digit to be in 2 digits only
NumberFormat f = new DecimalFormat("00");
long hour = (millisUntilFinished / 3600000) % 24;
long min = (millisUntilFinished / 60000) % 60;
long sec = (millisUntilFinished / 1000) % 60;
textView.setText(f.format(hour) + ":" + f.format(min) + ":" + f.format(sec));
}
// When the task is over it will print 00:00:00 there
public void onFinish() {
textView.setText("00:00:00");
}
}.start();
}
}
第 3 步:使用 MainActivity。Java
现在在MainActivity。 Java文件,创建一个 TextView 的对象,并用它们的 id 映射组件(TextView)。
// Initializing thetextView
TextView textView;
textView = findViewById (R.id.textView);
将倒计时安排到未来的某个时间,并在此期间定期通知。在文本字段中显示 50 秒倒计时的示例:
new CountDownTimer(50000, 1000) {
public void onTick(long millisUntilFinished) {
// Used for formatting digit to be in 2 digits only
NumberFormat f = new DecimalFormat(“00”);
long hour = (millisUntilFinished / 3600000) % 24;
long min = (millisUntilFinished / 60000) % 60;
long sec = (millisUntilFinished / 1000) % 60;
textView.setText(f.format(hour) + “:” + f.format(min) + “:” + f.format(sec));
}
// When the task is over it will print 00:00:00 there
public void onFinish() {
textView.setText(“00:00:00”);
}
}.start();
MainActivity 的完整代码。 Java文件如下。
主要活动。Java
package org.gfg.countdowntimer;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class MainActivity extends AppCompatActivity {
// Initializing my textView
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
// Time is in millisecond so 50sec = 50000 I have used
// countdown Interveal is 1sec = 1000 I have used
new CountDownTimer(50000, 1000) {
public void onTick(long millisUntilFinished) {
// Used for formatting digit to be in 2 digits only
NumberFormat f = new DecimalFormat("00");
long hour = (millisUntilFinished / 3600000) % 24;
long min = (millisUntilFinished / 60000) % 60;
long sec = (millisUntilFinished / 1000) % 60;
textView.setText(f.format(hour) + ":" + f.format(min) + ":" + f.format(sec));
}
// When the task is over it will print 00:00:00 there
public void onFinish() {
textView.setText("00:00:00");
}
}.start();
}
}
输出:在模拟器上运行
脉冲倒计时
Android 中的PulseCountDown是CountDownTimer 的替代品。实现 PulseCountDown 而不是 CountDownTimer 非常容易,因为PulseCountDown 提供了带有一些漂亮动画的默认布局。默认情况下, PulseCountDown的起始值为 10,结束值为0。假设需要 一种 测验应用程序,并在其中添加时间限制来回答问题,可以使用PulseCountDown 。实施 PulseCountDown请参考 Android 中的 PulseCountDown 示例。