在我的
背景颜色更改的代码如下:
现在,在此“QuestionsActivity”的页脚部分,有两个名为“PreviousQuestionButton”和“NextQuestionButton”的按钮,它们基本上是问题之间的导航按钮。
问题在于,当我点击“Check Answer”按钮后进入下一个问题时,答案背景颜色并没有消失,仍然在下一个问题的答案选项中存在。我尝试了“ListView”的“invalidate()”、“refreshDrawableState()”方法,但都没有成功!
以下是显示给定问题答案的方法:
QuestionsActivity
中,我展示了一个问题和一堆答案。问题显示在TextView
上,答案显示在由多个TextViews
组成的ListView
上。有一个名为“检查答案”的ActionButton
,当它被点击时,通过改变ListView
中的TextView
的背景颜色来显示正确答案。背景颜色更改的代码如下:
if (allAnswers.get(i).isCorrect())
{
mAnswerList.getChildAt(i).setBackgroundColor
(getResources().getColor(R.color.correct_answer_background));
return;
}
现在,在此“QuestionsActivity”的页脚部分,有两个名为“PreviousQuestionButton”和“NextQuestionButton”的按钮,它们基本上是问题之间的导航按钮。
问题在于,当我点击“Check Answer”按钮后进入下一个问题时,答案背景颜色并没有消失,仍然在下一个问题的答案选项中存在。我尝试了“ListView”的“invalidate()”、“refreshDrawableState()”方法,但都没有成功!
以下是显示给定问题答案的方法:
private void showAnswers(int questionLocation)
{
int questionId = mAllQuestions.get(questionLocation).getQuestionId();
List<Answer> answers = mAnswerRepository.getAllByQuestionId(questionId);
mAnswerAdapter.clear();
for (int i = 0; i < answers.size(); i++)
{
mAnswerAdapter.add(mOptionLetters[i] + ". "
+ answers.get(i).getAnswerText());
}
mAnswerAdapter.notifyDataSetChanged();
}
我的问题
我希望在单击“下一个”或“上一个”按钮时,ListView中正确答案的背景颜色应该消失,以便“下一个”和“上一个”按钮可以向用户显示未选择的答案选项列表。是否有一种方法可以将ListView重置为没有任何背景色的状态?
对于所选答案选项,我正在使用mAnswerList.clearChoices()
取消选择,但这不适用于正确答案的背景颜色。
showCorrectAnswer
设置为 false。也许可以重写clear
并在其中将showCorrectAnswer
设置为 false,然后调用super.clear()
。 - gunar