【发布时间】:2016-06-14 07:49:35
【问题描述】:
我的代码/情况:
我有四个 String 类的对象,名称从 mQuestionAnswer1 到 mQuestionAnswer4。现在,它们以非常简单的方式显示在四个 TextView 中:tvQuestionAnswer1.setText(mQuestionAnswer1) 等。
另外我需要提一下,答案是可点击的并且会被检查,例如当用户点击第 1 个答案时,它会触发监听器并调用 checkAnswer(1)。
我想要达到的目标:
我想随机排列答案,这样它们就不会每次都显示在相同的位置。
我有一些解决方案,但我认为它有点过于复杂,如果你能帮助我澄清这个问题,我将不胜感激。
想法:
我设置了数组:
int[] answersArray = {1, 2, 3, 4};
并使用我的称为 shuffleArray() 的 Fisher-Yates 方法对其进行洗牌:
shuffleArray(answersArray);
在此之后,我得到了洗牌的数组,这就是问题开始的地方。我不知道如何在 TextViews 中显示 mQuestionAnswer1。我可以运行 for 循环和 if else 但这可能太夸张了。
检查答案可能会更容易(应该...)。当用户点击第 1 个答案时,我想我会做类似的事情:checkAnswer(answersArray[0])。
这是正确的方法吗?你知道如何快速显示mQuestionAnswers 吗?非常感谢所有提示。
【问题讨论】:
-
你的数据模型是如何关联问题和答案的???
-
@Xoce 我使用 AsyncTask 从我的数据库中获取它,并将值传递给
mQuestionAnswer1 ... 4和mCorrectAnswer。当点击答案时,我有 4 个侦听器,每个侦听器用于每个 TextView。他们调用checkAnswer(1) ... (4),该函数将checkAnswer的参数与mCorrectAnswer进行比较。 -
好的...我现在就发帖...