我在我的应用程序中创建了一个应用程序和某个部分我存储了价格列表以及价格持续的时间(它们并非都持续相同的时间)。因此价格会持续一段时间,然后一旦价格上涨,它就会变为另一个价格(此部分会更改用户界面或基本上用新价格更新文本视图)。所以我需要的是一个计时器,它使用新的时间长度再次设置计时器,一旦完成,就会改变UI。例如,假设每对代表价格金额和时间(以秒为单位):{{$ 2.53,1.4s},{$ 4.57,4.45s},{$ 1.23,3.6s} ...}
因此,当计时器启动时,textview显示$ 2.53并且计时器持续1.4s然后它应该获取下一个价格$ 4.57并再次设置,但这次是4.45s。这个过程一直持续到游戏结束。我正在考虑使用CountDownTimer并在调用onFinish()方法后重置自己(我还没有验证这个想法是否有效)。还有其他想法吗?
答案 0 :(得分:0)
您可以使用倒数计时器和onFinish方法回调该功能并启动另一个计时器:
private void startWheatPrices(long gameTime)
{
//other stuff executed
StartWheatTimer(GameTimeDifference);//starts the timer for the first time
}
private void StartWheatTimer(long TimerAmount) { WheatTimer =新的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();
}