📜  Android 中的 CountDownTimer 示例

📅  最后修改于: 2022-05-13 01:55:41.730000             🧑  作者: Mango

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)。

将倒计时安排到未来的某个时间,并在此期间定期通知。在文本字段中显示 50 秒倒计时的示例

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 中的PulseCountDownCountDownTimer 的替代品。实现 PulseCountDown 而不是 CountDownTimer 非常容易,因为PulseCountDown 提供了带有一些漂亮动画的默认布局。默认情况下 PulseCountDown起始值为 10,结束值为0。假设需要 一种 测验应用程序,并在其中添加时间限制来回答问题,可以使用PulseCountDown实施 PulseCountDown请参考 Android 中的 PulseCountDown 示例。

脉冲倒计时

脉冲倒计时