0

私はアンドロイドが初めてです。私はクイズアプリをやっています.私は1つのJSON配列テキストファイルを持っています.AndroidでJSON配列を使用して繰り返しなしで乱数を生成する方法..助けてください.ありがとうございます..これは私のサンプルコードです.

public static JSONArray getQuesList()throws JSONException{

     ArrayList<Integer> list = new ArrayList<Integer>(size);
        for(i =size - 1; i >= 0; i--) {
            //index = rnd.nextInt(list.size());
            list.add(i);
        }

        Random rand = new Random();
        while(list.size() > 0) {
            index = rand.nextInt(list.size());
            Object object = quesList.get(index);
              quesList.put(index, quesList.get(i));
              quesList.put(i, object);
            Log.d("","Selected: "+list.remove(index));
        }
        return quesList;
4

1 に答える 1

0

編集済み

QuestionActivity.java

グローバル変数

int[] quizarray = null;

2つの機能を追加

private void createQuizIndex() {
    int[] array = new int[QuizFunActivity.getQuesList().length()];
    quizarray = new int[QuizFunActivity.getQuesList().length()];

    for(int i = 0 ; i < QuizFunActivity.getQuesList().length() ; i++){
        array[i] = i;
    }

    Random random = new Random();
    int m = 0;
    for (int n = array.length ; n > 0; n--){    
        int r = random.nextInt(n);
        quizarray[m++] = array[r];
        array[r] = array[n-1];  
    }
}

private int getIndexNum(int quesIndex2) {
    return quizarray[quesIndex2];
}

すべてのショーの質問を変更する

showQuestion(getIndexNum(quesIndex),review);

80 行目でcreateQuizIndex()を呼び出し、「再受験」が別のランダム クイズを意味する場合は 194 行目を呼び出します

于 2013-07-08T07:23:49.227 に答える