-1

CountDownTimer を少しいじってみました。ただし、特別なアプリの場合、次の機能が必要です。

  1. ランダムなランタイムで CountDownTimer を開始する
  2. 終了時にビープ音を鳴らす
  3. 5 秒待ちます
  4. 再度ビープ音を鳴らして GOTO 1.

この手順は、ボタンで開始し、ボタンでキャンセルする必要があります。ここでループされた CountDownTimer を使用した投稿を見つけましたが、これはランダムなランタイムでは機能しません。

4

1 に答える 1

1

わかりました、私はあなたにコードを与えるつもりはありません。それはあなたの宿題です。ただし、ウィルがどのように機能するかを説明しますcountDownTimer

CDT クラスを設定したら、新しいオブジェクトを作成します。

private static myCDT newTime;//static makes sure there's only one instance of the variable in the entire program
newTime = new myCDT(randNum*1000, 1000);

randNum が 10 の場合、カウント ダウンは 10 秒間です。

乱数を生成するには、上限をどうしたいかを調べます。私はそれが 50 であると想定しています。したがって、CDT には 0 ~ 50 のオプションがあります。

int randNum=50*Math.random();

0を除外して最小にしたい場合1s

int randNum=1+49*Math.random();

ボタンのブール変数も設定します。初めてクリックしたときは、true に設定します。しばらくの間、この変数を条件として使用します。ここで、ユーザーがボタンをもう一度クリックした場合は、変数を false に設定します。cancel()CDT オブジェクトの関数を呼び出しますnewTimeonFinish()ここで、CDT の関数を呼び出します。これにより制御の流れが while ループに戻り、条件が false になり、ループが停止します。このループがボタンのクリック リスナー関数内にあることを確認してください。または他の関数で、必ずクリックリスナーから呼び出してください。

于 2013-05-17T14:58:30.967 に答える