2014-10-01 79 views
0

您好我在用於獲取錯誤 「意外的標記」(INT I = 0;我< 4;我++)隨機圖像 - 的Android

我有兩個陣列,內相同的圖像。在這個例子中,我有2個數組與3個圖像(圖像是相同的每個數組)。我想從每個數組中獲得2個隨機圖像,並且它們必須是相同的圖像(因此是一對)。對於我做錯什麼的任何輸入都會很棒!

那麼我想把這些圖像放到圖像按鈕上。

public class Card { 
ArrayList<Integer> list=new ArrayList<Integer>(); 
ArrayList<Integer> list1=new ArrayList<Integer>(); 
Random r1=new Random(); 
int[] imageArray1 = new int[] {R.drawable.raptors, R.drawable.okc_thunder, R.drawable.spurs}; 

int[] imageArray2 = new int[] {R.drawable.raptors, R.drawable.okc_thunder, R.drawable.spurs}; 
for(int i=0;i<4;i++) 
{ 
    while(true) 
    { 
     int next=r1.nextInt(10)+1; 
     if(!list.contains(next)) 
     { 
      list.add(imageArray1[next]); 
      list1.add(imageArray2[next]); 
      break; 
     } 
    } 
} 
array1 = convertIntegers(list); 
array2 = convertIntegers(list1); 


public static int[] convertIntegers(List<Integer> integers) 
{ 
    int[] ret = new int[integers.size()]; 
    Iterator<Integer> iterator = integers.iterator(); 
    for (int i = 0; i < ret.length; i++) 
    { 
     ret[i] = iterator.next().intValue(); 
    } 
    return ret; 
} 

}

回答

0

爲什麼要用兩個數組,如果他們還是持有相同的數據?

int[] imageArray1 = new int[] {R.drawable.raptors, R.drawable.okc_thunder, R.drawable.spurs}; 
int[] imageArray2 = new int[] {R.drawable.raptors, R.drawable.okc_thunder, R.drawable.spurs}; 

只要做到:

int[] imageArray = new int[] {R.drawable.raptors, R.drawable.okc_thunder, R.drawable.spurs}; 

也是爲什麼你正在使用數組列表和while循環我不明白這一點。 我會這樣做:

public int getRandomCard() { 
    return this.imageArray[r1.nextInt(3)]; 
} 
+0

感謝您的回答!我使用了兩個陣列,因爲我需要一對圖片。所以在這個例子中我有3張照片(卡片)。但每張卡會有2張(6張卡/ 3對)。在三對中,我需要隨機選擇2對!你提供的代碼是否一樣? – newbdeveloper 2014-10-01 21:26:55