2014-10-01 81 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