首页 > 解决方案 > 如何在 android studio 中创建计时器?

问题描述

我正在尝试在我的应用程序上放置一个从 0 开始的计时器,从 0(秒)开始计数,从(1 ... 13 ... 59 ... 1:19 等)更改,然后结束暂停,或在游戏结束时停止。我希望能够显示此暂停时间,以显示用户完成播放所需的时间。

我已经尝试过计时器方法(?),但它不断使应用程序崩溃并且无法正常工作。目前我正在尝试使用线程 t = 新线程......但没有任何运气。

我的 1 次尝试

Thread t = new Thread(){@Override
            public void run(){
                try{
                    while(!isInterrupted()){
                        Thread.sleep(1000);
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                TextView textViewTime = findViewById(R.id.textTimer);
                                long time = System.currentTimeMillis();
                                textViewTime.setText(time);
                            }
                        });
                    }
                } catch (InterruptedException e) {
                }
            }
        };
        t.start();

目前有“时间”下划线表示无法解析方法 setText(long) 我无耻地尝试创建这个计数器,重用来自不同项目的代码,但对于那个项目,我使用了 SimpleDateFormat 方法,所以它稍微容易一些。

标签: javaandroidtime

解决方案


Android 提供 CountDownTimer API 来执行这些操作,请查看以下示例,

long maxCounter = 30000;
long diff = 1000;

    new CountDownTimer(maxCounter , diff ) {

        public void onTick(long millisUntilFinished) {
            long diff = maxCounter - millisUntilFinished;
            mTextField.setText("seconds completed: " +diff  / 1000);
           //here you can have your logic to set text to edittext
        }

        public void onFinish() {
            mTextField.setText("done!");
        }

    }.start();

编辑:

我已更新我的答案以用作向上计数器。


推荐阅读