数据库中的随机列集

时间:2012-04-09 09:08:35

标签: android database

到目前为止,我已设法在特定的textview中显示一行(4列)的内容。但我想随机显示它们。 我用这个

String answer1 = cur.getString(cur.getColumnIndex("ANSWER1"));

然后单击内容更改,但始终在第一个textview中显示ANSWER1列上的数据。如何随机显示4列到4个文本视图?例如,第1列到textview 3,第2列到textview 1等。我想在textview 1上每次都有不同的数据 ---- ----编辑
假设我还有一列用于表示正确答案列的编号。例如,如果正确的答案在“Answer3”列中,则“CorrAnswer”列中的数据为3.我将上面的文本视图更改为按钮。每个按钮发送一个整数。当按钮上的文本被洗牌时,如何检查正确的答案?

1 个答案:

答案 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;
    }