2013-07-08 79 views
0

我是android新手。我做quize app.I有一個JSON數組文本file.how產生用JSON數組中android..please出repetation隨機數幫我 謝謝進階.. 這是我的示例代碼如何在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; 
+0

爲什麼不加載在整數數組中的rnd.nextInt(i + 1),然後在子循環中檢查新生成的數據是否存在於它中?如果是,那麼生成一個新的,如果沒有 - 使用當前。 – g00dy

+0

交換已經隨機爲什麼問?我改變了我的答案。嘗試一下。這個對我有用。 – Gina

回答

0

編輯

QuestionActivity.java

全局變量

int[] quizarray = null; 

加入兩種功能

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

showQuestion(getIndexNum(quesIndex),review); 

呼叫createQuizIndex()管線80,和線路194,如果 「重考」 是指另一個隨機測驗

+0

我在哪裏放這段代碼,我可以使用它們中的任何一個嗎? – user2390014