我想在CountDownTimer
循环中重复for
,直到执行完成。但是CountDownTimer
执行for
循环的第一个索引,它不能再次重复下一个索引。
for (final Question questionData : questionSet) {
setUI(questionData);
startTimer();
}
private void setUI(Question questionData) {
question.setText(questionData.getQuestion());
ch1.setText(questionData.getC1());
ch2.setText(questionData.getC2());
ch3.setText(questionData.getC3());
}
private void startTimer(){
int interval = 10000;
countDownTimer = new CountDownTimer(interval, 1000) {
public void onTick(long millisUntilFinished) {
time.setText("seconds remaining: "
+ millisUntilFinished / 1000);
}
public void onFinish() {
time.setText("done!");
countDownTimer.cancel();
}
}.start();
}
此处questionSet
有两个索引。
提前谢谢。
答案 0 :(得分:0)
终于找到了解决方案。
for (final Question questionData : questionSet) {
tempQuestionSet.add(questionData);
setUI(questionData);
startTimer();
break;
}
private void setUI(Question questionData) {
question.setText(questionData.getQuestion());
ch1.setText(questionData.getC1());
ch2.setText(questionData.getC2());
ch3.setText(questionData.getC3());
}
private void startTimer(){
int interval = 10000;
countDownTimer = new CountDownTimer(interval, 1000) {
public void onTick(long millisUntilFinished) {
time.setText("seconds remaining: "
+ millisUntilFinished / 1000);
}
public void onFinish() {
time.setText("done!");
final Question question = getQuestionSet();
if(question == null){
countDownTimer.cancel();
}else{
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
setUI(question);
}
});
countDownTimer.start();
}
}
}.start();
}
private Question getQuestionSet(){
Question newQuestion = null;
for (final Question questionData : questionSet) {
if(tempQuestionSet.contains(questionData)){
}
else{
tempQuestionSet.add(questionData);
return questionData;
}
}
return newQuestion;
}