将秒表从秒表转换为整数

时间:2019-07-06 15:58:49

标签: java android chronometer

我正在创建一个游戏,它将每10秒增加一个级别,用户将看到时间(使用计时器)和他们当前所在的级别。 我正在尝试创建一个整数,将每10秒递增一次,如计时器上所示。

我在这里找不到满足我需求的指南。 我试图猜测计时器的运行时间是毫秒,事实并非如此。

在我班上:

private Chronometer chronometer;

在我的onCreate(使用的XML)中:

chronometer=findViewById(R.id.timer);

尝试将计时器转换为秒(仅尝试第一次尝试):

        int timeChecker=(int) (SystemClock.elapsedRealtime() - chronometer.getBase());
        if (timeChecker==10){
            lvl++;
            lvlcount.setText(lvl+"");
        }

我想每10秒增加一次级别,而不是将TextView更改为以前的级别。

1 个答案:

答案 0 :(得分:0)

首先,elapsedRealTime()chronometer.getBase()以毫秒为单位,因此增量也以毫秒为单位:

long timeDeltaFromStartInMs = (SystemClock.elapsedRealtime() - chronometer.getBase());

接下来,假设在此讨论中永不重置天文钟,则经过的级别数为(整数除法将截断):

int numLevelsElapsed = (int) (timeDeltaFromStartInMs / 10000);

假设初始级别从0开始,那就很简单:

lvlcount.setText(Integer.toString(numLevelsElapsed));

如果级别具有初始非零值(来自先前的播放):

lvlcount.setText(Integer.toString(initialLevelCnt+numLevelsElapsed));

也许对您的问题还有其他一些细微差别-如果可以的话,请随时发表评论。