1

私のアプリケーションは質問/応答アプリケーション、クライアント/サーバー、クライアントはAndroidアプリケーション、サーバーはJava Tomcatサーバーアプリケーションです

ユーザーに 25 秒以内に質問に答えてもらいたいのですが、質問を読む時間を与えます。その時間は、質問に含まれる単語の数によって異なります。たとえば、質問に 10 単語が含まれている場合は、10 秒間与えます。質問を読んでから 25 秒で回答します。(25 秒のうちの) 10 秒で質問に回答したユーザーは、同じ質問に 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

パラメーター

millisInFuturestart()の呼び出しからカウントダウンが完了し、onFinish()が呼び出されるまでの将来のミリ秒数。

countDownIntervalonTick(long)コールバックを受信する途中の間隔。

編集:

質問をString変数に入れてから、この文字列を(スペース)で分割するArrayと、配列の数はその質問の単語数になります。

次に、次の式を実行して、読み取りのカウントダウン時間を計算します。

time=numberOfWords*2000;

それは各単語2秒間です。

于 2012-06-24T12:41:29.573 に答える