2012-04-09 17 views
0

到目前爲止,我已經設法在特定文本瀏覽中顯示一行(4列)的內容。但我想隨機顯示它們。 我用這個從數據庫中隨機設置一組列

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

和點擊量的變化,但總是在列ANSWER1的數據顯示,第一TextView中。我能做些什麼來隨機將4列顯示到4個文字瀏覽?例如,第1列到textview 3,第2列到textview 1等。我希望每次在textview 1上的不同數據。
----編輯----
可以說我有一列多列表示列的數量正確的答案是,例如,如果正確答案出現在「回答3」列中,「CorrAnswer」列中的數據是3.我將上面的文本視圖更改爲按鈕。每個按鈕發送一個整數。當按鈕上的文本被混洗時,我該如何檢查正確的答案?

+0

你想要得到的事實隨機列強烈建議您的模式未標準化。 https://en.wikipedia.org/wiki/Database_normalization – 2012-04-09 09:15:40

+0

讓我更具體。我想在文本瀏覽中以不預先排列的順序顯示每列的數據。與規範化無關。 – dothedos 2012-04-09 09:23:45

回答

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; 
    } 
+0

我不想刪除答案,但您的答案可以工作。如果我想要在arraylist的特定索引中刺入,並將其顯示給textview,我該怎麼做? – dothedos 2012-04-09 10:32:00

+0

刪除僅從臨時數組列表中刪除字符串:它們不會從數據庫中刪除 – 2012-04-09 10:34:51

+0

要將字符串添加到文本視圖,請在while循環內調用textView.set文本(隨機答案)。但是,如果每次迭代都需要使用不同的textview,則需要保留尚未設置textview的引用。 – 2012-04-09 10:37:05