Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 添加计时器和冻结应用程序(android studio)_Java_Android_Android Studio - Fatal编程技术网

Java 添加计时器和冻结应用程序(android studio)

Java 添加计时器和冻结应用程序(android studio),java,android,android-studio,Java,Android,Android Studio,我正在android studio上编写一个测验应用程序,现在,我的目标是为每个错误的答案增加一个时间惩罚,也就是说,如果用户回答错误,他将不得不等待10秒,直到他能够再次回答,在这10秒里,应用程序将冻结,用户将不得不等待 我想显示剩余的时间 计时器应插入代码的这一部分: butNext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v

我正在android studio上编写一个测验应用程序,现在,我的目标是为每个错误的答案增加一个时间惩罚,也就是说,如果用户回答错误,他将不得不等待10秒,直到他能够再次回答,在这10秒里,应用程序将冻结,用户将不得不等待

我想显示剩余的时间

计时器应插入代码的这一部分:

    butNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            RadioGroup grp = (RadioGroup) findViewById(R.id.radioGroup1);
            RadioButton answer = (RadioButton) findViewById(grp.getCheckedRadioButtonId());
            Log.d("yourans", currentQ.getANSWER() + " " + answer.getText());
            if (currentQ.getANSWER().equals(answer.getText())) {//bad equal to
                score++;
                Log.d("good answer", "Your score" + score);
            }else {
                Log.d("bad answer", "Your score" + score);
               ***//the time should be implemented here***
            }
            if (qid < 7) {
                currentQ = quesList.get(qid);
                setQuestionView();
            } else {
                Intent intent = new Intent(Questionsctivity.this, ResultActivity.class);
                Bundle b = new Bundle();
                b.putInt("score", score); //Your score
                intent.putExtras(b); //Put your score to your next Intent
                startActivity(intent);
                finish();
            }
        }
    });
butNext.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
放射组grp=(放射组)findViewById(R.id.RadioGroup 1);
RadioButton answer=(RadioButton)findViewById(grp.getCheckedRadioButtonId());
Log.d(“yourans”,currentQ.getANSWER()+“”+answer.getText());
如果(currentQ.getANSWER().equals(answer.getText()){//bad等于
分数++;
Log.d(“回答正确”,“你的分数”+分数);
}否则{
Log.d(“回答不好”,“你的分数”+分数);
***//时间应该在这里执行***
}
如果(qid<7){
currentQ=quesList.get(qid);
setQuestionView();
}否则{
意向意向=新意向(QuestionsActivity.this、ResultActivity.class);
Bundle b=新Bundle();
b、 putInt(“分数”,分数);//你的分数
意图。附加动作(b);//把你的分数放在下一个意图上
星触觉(意向);
完成();
}
}
});

感谢您可以
禁用
单击监听器
所有监听器
指定的时间,并且您可以继续在
文本视图中显示剩余的时间计数器
,当达到10秒时,您可以启用单击监听器


希望这有帮助。

下面是我的解决方案,很容易理解。希望能有所帮助

new CountDownTimer(30000, 1000) {

            @Override
            public void onFinish() {
                mTextField.setText("done!");
                // enable your view by butNext.setOnClickListener(listener) or radioGroup.setEnable(true)...
            }

            @Override
            public void onTick(long millisUntilFinished) {
                mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
                // disable your view by butNext.setOnClickListener(null) or radioGroup.setEnable(false)...
            }
        };
试试这个:

new Handler().postDelayed(new Runnable() {
                public void run() {
                // code called after 5 seconds...
                }
            }, 5 * 1000);

使用布尔值禁用/启用你的应用程序视图怎么样?谢谢,但我想添加一个剩余时间字段。你可以使用带有计数器的简单文本视图,就像ok一样。我可以用它显示时钟-现在我只需要在应用程序计数时冻结它