Android studio实现计数器功能

Android studio实现计数器功能

我们使用原生计时器CountDownTimer
1.首先自己建立一个布局TextView------(countdown我自己定义的名字)可以显示文字

2.然后自己写一个类Mycount继承自CountDownTimer

    class MyCount extends CountDownTimer {

        public MyCount(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }
        @SuppressLint("SetTextI18n")
        @Override
        public void onTick(long millisUntilFinished) {
            Date date = new Date(millisUntilFinished);
            @SuppressLint("SimpleDateFormat") SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
            String str = sdf.format(date);
            System.out.println(str);
            countdown.setText(millisUntilFinished / 1000 +"S");
        }
        @SuppressLint("SetTextI18n")
        @Override
        public void onFinish() {
            countdown.setText("finish");
        }
    }
        @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        mc.cancel();
    }

protected void onDestroy()是退出活动前消除该计时器,以至于下次进入该活动重新计数。
3.在Main找到该布局id,创建Mycount实例,调用Mycount中的方法

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        
        countdown = findViewById(R.id.countdown);

        mc = new MyCount(180000, 1000);//计时器
        mc.start();
    }

4.代码汇总

public class resultActivity extends AppCompatActivity {
    private countdown;
    private MyCount mc;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        
        countdown = findViewById(R.id.countdown);

        mc = new MyCount(180000, 1000);//计时器
        mc.start();
        }
    }

    class MyCount extends CountDownTimer {

        public MyCount(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }
        @SuppressLint("SetTextI18n")
        @Override
        public void onTick(long millisUntilFinished) {
            Date date = new Date(millisUntilFinished);
            @SuppressLint("SimpleDateFormat") SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");
            String str = sdf.format(date);
            System.out.println(str);
            countdown.setText(millisUntilFinished / 1000 +"S");
        }
        @SuppressLint("SetTextI18n")
        @Override
        public void onFinish() {
            countdown.setText("finish");
        }
    }
    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        mc.cancel();
    }

这里定义了180S,显示也是179S,178S,176S…Finish

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值