我有一个在资产中导入的SQLite表,试用一个有10行6列(_ID, QUESTION, ANSWER, OPTION1, OPTION2和OPTION3)。我设法从数据库中读取随机行,并将该数据,一个问题分配给textview,并使用此代码对我的按钮进行四种可能的答案:
TestAdapter mDbHelper = new TestAdapter(this);
mDbHelper.createDatabase();
mDbHelper.open();
final Cursor c = mDbHelper.getTestData();
question.setText(c.getString(1));
bOdgovor1.setText(c.getString(2));
bOdgovor2.setText(c.getString(3));
bOdgovor3.setText(c.getString(4));
bOdgovor4.setText(c.getString(5));
我也有这一行在我的TestAdapter类:
String sql ="SELECT * FROM tblPitanja ORDER BY RANDOM() LIMIT 1";
这都很好,但我不会随机分配问题到按钮,因为这样每次答案都在按钮1。如何在我的按钮之间混合问题?
将字符串放入列表中,并使用此列表对它们进行洗牌。
下面是一个例子:
List<String> labels = new ArrayList<String>();
labels.add(c.getString(2));
labels.add(c.getString(3));
labels.add(c.getString(4));
labels.add(c.getString(5));
Collections.shuffle(labels);
bOdgovor1.setText(labels.get(0));
bOdgovor2.setText(labels.get(1));
bOdgovor3.setText(labels.get(2));
bOdgovor4.setText(labels.get(3));