1

我的应用是问答应用,客户端/服务器,客户端是android应用,服务器是java tomcat服务器应用

我希望用户在 25 秒内回答任何问题,但我会给他时间阅读问题,该时间取决于问题的字数,例如如果问题有 10 个字,我会给他 10 秒阅读问题,然后 25 秒回答,确保在 10 秒内(25 秒内)回答问题的用户将获得比在 20 秒内回答相同问题的用户更多的分数

所以我的问题是如何动态编辑 countDownTimer 的时间

showHint.setText("Show Hint 2");
//here i have to edit
timeToDirectAnswer.start();

我知道有一种方法可以通过使用动态时间初始化计时器来做到这一点,但我不想这样做,因为我的应用程序依赖于工作流程并且该流程可能会交换,因此代码将非常复杂且难以编辑

也许另一种方法是让 countDownTimer 睡眠精确秒,但这样我必须建立另一个计时器来告诉用户还有多少次开始计数标记

4

1 回答 1

2
new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {
         mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
     }

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

这是构造函数定义:

public CountDownTimer (long millisInFuture, long countDownInterval)

自:API 级别 1

参数

millisInFuture从调用 start() 到倒计时完成并调用 onFinish() 的未来毫秒数。

countDownInterval接收 onTick(long) 回调的时间间隔。

编辑:

您必须将问题放入String变量中,然后将此字符串与 (space) 分开Array,数组计数将是该问题的单词数。

然后,您将做一个方程式来计算阅读的倒计时时间:

time=numberOfWords*2000;

那就是每个单词2秒。

于 2012-06-24T12:41:29.573 回答