Java 添加计时器和冻结应用程序(android studio)
我正在android studio上编写一个测验应用程序,现在,我的目标是为每个错误的答案增加一个时间惩罚,也就是说,如果用户回答错误,他将不得不等待10秒,直到他能够再次回答,在这10秒里,应用程序将冻结,用户将不得不等待 我想显示剩余的时间 计时器应插入代码的这一部分: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
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一样。我可以用它显示时钟-现在我只需要在应用程序计数时冻结它