到目前为止,我已设法在特定的textview中显示一行(4列)的内容。但我想随机显示它们。 我用这个
String answer1 = cur.getString(cur.getColumnIndex("ANSWER1"));
然后单击内容更改,但始终在第一个textview中显示ANSWER1列上的数据。如何随机显示4列到4个文本视图?例如,第1列到textview 3,第2列到textview 1等。我想在textview 1上每次都有不同的数据
---- ----编辑
假设我还有一列用于表示正确答案列的编号。例如,如果正确的答案在“Answer3”列中,则“CorrAnswer”列中的数据为3.我将上面的文本视图更改为按钮。每个按钮发送一个整数。当按钮上的文本被洗牌时,如何检查正确的答案?
答案 0 :(得分:1)
我会将所有答案添加到ArrayList中,然后使用Random删除随机答案。以下Java(控制台)代码显示了如何执行此操作:
ArrayList<String> lstAnswers = new ArrayList<String>();
lstAnswers.add("Answer 1");
lstAnswers.add("Answer 2");
lstAnswers.add("Answer 3");
lstAnswers.add("Answer 4");
Random random = new Random();
while (lstAnswers.size() > 0) {
int index = random.nextInt(lstAnswers.size());
String randomAnswer = lstAnswers.remove(index);
System.out.println(randomAnswer);
}
根据您的编辑要求,以下内容会将文本分配给文本视图:
ArrayList<String> lstAnswers = new ArrayList<String>();
lstAnswers.add("Answer 1");
lstAnswers.add("Answer 2");
lstAnswers.add("Answer 3");
lstAnswers.add("Answer 4");
Random random = new Random();
int[] textViews = new int[] { R.id.txt1, R.id.txt2, R.id.txt3, R.id.txt4 };
int textViewIndex = 0;
while (lstAnswers.size() > 0) {
int index = random.nextInt(lstAnswers.size());
String randomAnswer = lstAnswers.remove(index);
((TextView)findViewByid(textViews[textViewIndex])).setText(randomAnswer);
++textViewIndex;
}