0

Android クイズ ゲームで countdoen を使用しています。非常にうまく機能する場合もあれば、力を発揮する場合もあります。8 つの質問に対して 8 つのタイマーを初期化していますが、それもキャンセルしています。すべてのタイマーは、onTick メソッドで 1 つの共通のテキストビューを使用します。

switch (question_display_number) {
    case 1:
        startTime = 30 * 1000;
        q1 = new MyCountDownTimer(startTime, interval);
        q1.start();
        break;
    case 2:
        startTime = 30 * 1000;
        q2 = new MyCountDownTimer(startTime, interval);
        q2.start();
        break;
    case 3:
        startTime = 30 * 1000;
        q3 = new MyCountDownTimer(startTime, interval);
        q3.start();
        break;
    case 4:
        startTime = 30 * 1000;
        q4 = new MyCountDownTimer(startTime, interval);
        q4.start();
        break;
    case 5:
        startTime = 60 * 1000;
        q5 = new MyCountDownTimer(startTime, interval);
        q5.start();
        break;
    case 6:
        startTime = 60 * 1000;
        q6 = new MyCountDownTimer(startTime, interval);
        q6.start();
        break;
    case 7:
        startTime = 60 * 1000;
        q7 = new MyCountDownTimer(startTime, interval);
        q7.start();
        break;
    case 8:
        startTime = 60 * 1000;
        q8 = new MyCountDownTimer(startTime, interval);
        q8.start();
        break; 

ここにタイマーがあります。

public class MyCountDownTimer extends CountDownTimer {
    public MyCountDownTimer(long startTime, long interval) {
        super(startTime, interval);
    }

    @Override
    public void onTick(long millisUntilFinished) {
        timer.setText(""+millisUntilFinished / 1000);
      // timer is a TextView.
    }

    @Override
    public void onFinish() {
        // alert dialog with two buttons.           
    }

助けてください、突然の強制終了の理由は何ですか? 以前のバージョンのゲームは強制終了せずに正常に動作するため、countDown タイマーが原因であることはわかっています。

4

1 に答える 1

0

timer.setText(""+millisUntilFinished / 1000);

タイマーはどこで初期化しましたか? この時点で null になり、NullPointerException

于 2013-09-13T01:41:37.433 に答える