Java 如何重置计时器?

Java 如何重置计时器?,java,android,Java,Android,我可以将计时器设置为从10秒开始倒计时,但下一页的时间将从0开始。每次运行时如何重置时间 这是我的密码 private TextView TIMER; private int Timerr = 10; public void Show_Next_Quiz(){ Random random = new Random(); int Random_Num = random.nextInt(quizArray.size()); ArrayList<

我可以将计时器设置为从10秒开始倒计时,但下一页的时间将从0开始。每次运行时如何重置时间

这是我的密码

private TextView TIMER;
private int Timerr = 10;

public void Show_Next_Quiz(){

        Random random = new Random();
        int Random_Num = random.nextInt(quizArray.size());
        ArrayList<String> quiz = quizArray.get(Random_Num);

        Question1.setText(quiz.get(6)+quizCount);

    Right_Answer = quiz.get(0);

    quiz.remove(6);

    Collections.shuffle(quiz);

    iV1.setImageResource(
            getResources().getIdentifier(quiz.get(0), "drawable", getPackageName())
    );
    iV2.setImageResource(
            getResources().getIdentifier(quiz.get(1), "drawable", getPackageName())
    );
    iV3.setImageResource(
            getResources().getIdentifier(quiz.get(2), "drawable", getPackageName())
    );
    iV4.setImageResource(
            getResources().getIdentifier(quiz.get(3), "drawable", getPackageName())
    );
    iV5.setImageResource(
            getResources().getIdentifier(quiz.get(4), "drawable", getPackageName())
    );
    iV6.setImageResource(
            getResources().getIdentifier(quiz.get(5), "drawable", getPackageName())
    );

        ans1.setText(quiz.get(0).substring(0,(quiz.get(0).length()-1)));
        ans2.setText(quiz.get(1).substring(0,(quiz.get(1).length()-1)));
        ans3.setText(quiz.get(2).substring(0,(quiz.get(2).length()-1)));
        ans4.setText(quiz.get(3).substring(0,(quiz.get(3).length()-1)));
        ans5.setText(quiz.get(4).substring(0,(quiz.get(4).length()-1)));
        ans6.setText(quiz.get(5).substring(0,(quiz.get(5).length()-1)));

        Count_Down();
        quizArray.remove(Random_Num);
}

public void Count_Down(){
    new CountDownTimer(12*1000,1*1000){
        @Override
        public void onTick(long millisUntilFinished) {
            TIMER.setText(String.valueOf(Timerr));
            Timerr--;
        }
        @Override
        public void onFinish() {
            TIMER.setVisibility(View.INVISIBLE);
            TIMER.setText(String.valueOf(Timerr));
        }
    }.start();
私有文本视图定时器;
专用int Timerr=10;
公开无效显示下一个测验(){
随机=新随机();
int Random_Num=Random.nextInt(quizArray.size());
ArrayList quick=quizArray.get(随机数);
问题1.setText(测验。获取(6)+quizCount);
正确答案=测验。获取(0);
移除(6);
收集。洗牌(测验);
iV1.setImageResource(
getResources().getIdentifier(quick.get(0),“drawable”,getPackageName())
);
iV2.setImageResource(
getResources().getIdentifier(quick.get(1),“drawable”,getPackageName())
);
iV3.setImageResource(
getResources().getIdentifier(quick.get(2),“drawable”,getPackageName())
);
iV4.setImageResource(
getResources().getIdentifier(quick.get(3),“drawable”,getPackageName())
);
iV5.setImageResource(
getResources().getIdentifier(quick.get(4),“drawable”,getPackageName())
);
iV6.setImageResource(
getResources().getIdentifier(quick.get(5),“drawable”,getPackageName())
);
ans1.setText(quick.get(0).substring(0,(quick.get(0).length()-1));
ans2.setText(quick.get(1).substring(0,(quick.get(1).length()-1));
ans3.setText(quick.get(2).子字符串(0,(quick.get(2).length()-1));
ans4.setText(quick.get(3).子字符串(0,(quick.get(3).length()-1));
ans5.setText(quick.get(4).子字符串(0,(quick.get(4).length()-1));
ans6.setText(quick.get(5).substring(0,(quick.get(5).length()-1));
倒计时();
quizArray.remove(随机数);
}
公共空间倒计时(){
新倒计时(12*1000,1*1000){
@凌驾
公共void onTick(长毫秒未完成){
TIMER.setText(String.valueOf(Timerr));
Timerr--;
}
@凌驾
公共无效onFinish(){
TIMER.setVisibility(View.INVISIBLE);
TIMER.setText(String.valueOf(Timerr));
}
}.start();

在函数
CountDown
中,我将
TIMER.setText(String.valueOf(Timerr))
同时放在(onTick和onFinish)中,但它不能工作。如何使计时器每次都是10秒?

CountDownTimer
创建一个全局变量

CountDownTimer countDownTimer;

private void timer(){
        countDownTimer =  new CountDownTimer(12*1000,1*1000){
            @Override
            public void onTick(long millisUntilFinished) {
                TIMER.setText(String.valueOf(Timerr));
                Timerr--;
            }
            @Override
            public void onFinish() {
                TIMER.setVisibility(View.INVISIBLE);
                TIMER.setText(String.valueOf(Timerr));
            }
        }.start();

    }
对于取消计时器

countDownTimer.cancel();
countDownTimer.onFinish();
countDownTimer.start();
对于完成计时器

countDownTimer.cancel();
countDownTimer.onFinish();
countDownTimer.start();
对于重新启动/启动计时器

countDownTimer.cancel();
countDownTimer.onFinish();
countDownTimer.start();

Owhh但如何使用?当我使用它时,它是由以下原因引起的:java.lang.NullPointerException:尝试调用虚拟方法'android.os.CountdowntTimer android.os.CountdowntTimer.start()'在空对象引用上此问题如何解决?首先需要初始化countDownTimer。然后可以使用method.ya。我会在您教学时启动countDownTimer。但是当我键入代码countDownTimer.start()时,它会给我该错误。