我为测验创建了一个类,其中每个问题都是ReviewLogic
自己的对象。
在我创建ReviewLogic0
后跟ReviewLogic1
的活动中,活动会加载ReviewLogic1
中的所有内容。
回顾这个课程,我想我需要一个循环来继续循环,直到问题成功回答,然后终止以允许正确加载下一个对象。
我的问题是我不确定在何处以及如何应用此循环。
我尝试使用while
循环时考虑while (!questionAnswered) { if... else... }
然而这会给我一个无限循环并崩溃。
逻辑很简单:有4个
answer3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
answer0.setBackgroundResource(R.drawable.unselectedbutton);
answer1.setBackgroundResource(R.drawable.unselectedbutton);
answer2.setBackgroundResource(R.drawable.unselectedbutton);
answer3.setBackgroundResource(R.drawable.selectedbutton);
answerSelect = 3;
}
});
和实际的逻辑组件
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (answerSelect == correctAnswer) {
makeToast(context, "Correct!");
} else {
makeToast(context, "Try again.");
}
}
});
活动类
ReviewLogic question1 = new ReviewLogic(1, textReviewBody,"Question 1 place holder",
textTitle,btnReview0,
btnReview1,btnReview2, btnReview3, btnReviewSubmit,
btnReviewContinue, GetStarted.this);
question1.setVisibilityAll();
question1.setAnswer0("0");
question1.setAnswer1("1");
question1.setAnswer2("2");
question1.setAnswer3("3");
ReviewLogic question2 = new ReviewLogic(1,textReviewBody,"Question 2 loading early.",
textTitle,btnReview0,
btnReview1,btnReview2, btnReview3, btnReviewSubmit,
btnReviewContinue, GetStarted.this);
question2.setVisibilityTwo();
question2.setAnswer0("ans 1");
question2.setAnswer1("ans 2");
}
哪里(和什么类型)是启动循环的最佳位置,以便活动不只是自动加载下一个对象?
由于
答案 0 :(得分:0)
如果你有一个ViewPager,其中包含一个片段的多个实例,这些实例都有你问题的对象,那么你只需要处理其中一个答案中的点击,然后再调用下一个片段。这样你就不需要使用循环了。您可以实现调用其他活动而不是ViewPager
中的片段的相同效果