0

これまでのところ、特定のテキストビューで行(4列)の内容を表示することができました。しかし、私はそれらをランダムに表示したいと思います。私はこれを使います

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

クリックするとコンテンツが変更されますが、常に列ANSWER1のデータが最初のテキストビューに表示されます。4つの列を4つのテキストビューにランダムに表示するにはどうすればよいですか?たとえば、列1からtextview 3、列2からtextview1など。textview1で毎回異なるデータが必要です。----
編集----
列の番号を示す列がもう1つあるとしましょう。正解は次のとおりです。 。たとえば、正解が「Answer3」列にある場合、「CorrAnswer」列のデータは3です。上のテキストビューをボタンに変更します。各ボタンは整数を送信します。ボタンのテキストがシャッフルされている場合、どうすれば正解を確認できますか?

4

1 に答える 1

1

すべての回答をArrayListに追加してから、ランダムを使用してランダムな回答を削除します。次の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;
    }
于 2012-04-09T09:47:02.810 に答える