在 Android 中修改 GUI 的自准备计时器

Self Prepuating Timer That Modifies GUI in Android

我正在制作一个应用程序,我在应用程序的某个部分存储了价格列表以及价格持续的时间(它们的持续时间不尽相同)。因此,价格会持续一段时间,然后一旦该价格的时间到了,它就会更改为另一个价格(这部分会更改 UI 或基本上它会用新价格更新文本视图)。所以我需要的是一个计时器,它可以用新的时间长度再次设置计时器,一旦完成,就进行 UI 更改。例如,每一对代表价格金额和时间(以秒为单位):{ {$2.53,1.4s}, {$4.57,4.45s}, {$1.23,3.6s}...}

因此,当计时器启动时,textview 显示 $2.53,计时器持续 1.4 秒,然后它应该获取下一个价格 $4.57 并再次设置,但这次为 4.45 秒。这个过程一直持续到游戏结束。我正在考虑使用 CountDownTimer 并在调用 onFinish() 方法后自行重置(我还没有验证这个想法是否有效)。还有其他想法吗?

您可以使用倒数计时器和 onFinish 方法回调该函数并启动另一个计时器:

private void startWheatPrices(long gameTime) 
{
    //other stuff executed
    StartWheatTimer(GameTimeDifference);//starts the timer for the first time
}

private void StartWheatTimer(long TimerAmount) { WheatTimer = new CountDownTimer(TimerAmount, 10) {

        public void onTick(long millisUntilFinished) 
        {

        }

        public void onFinish() 
        {
            //other stuff executed
            WheatPricesTV.setText(Float.toString(PriceList.get(0).get(WheatPriceIndex).price));//price is changed 
            if(InGameplayMode)
                StartWheatTimer(convertToMilliseconds(PriceList.get(0).get(WheatPriceIndex).timeLength));//call back the function to start the timer again
        }
     }.start();
}