2012-03-20 21 views
1

我將12個ImageButton分配給自己的ID,然後給出6個隨機圖像中的每一個。我想6對2.我創建了自己的類「雙」來存儲他們,但它崩潰 我省略了一些初始化只是爲了避免簇,但是這是基本的設置在App中使用我自己的類來存儲對

class Pairs { 

int first; 
int second; 

public void setFirst(int a){ 
    first = a; 
} 

public void setSecond(int a){ 
    second = a; 
} 

} 

protected void onCreate(Bundle savedInstanceState){ 
    Boolean isShown[]; 
    Pairs imagePairs [] = new Pairs[6]; 
    gen = new Random(); 
    int randomAssign = 1; 
    while(randomAssign < 13){ 
     b = gen.nextInt(12) + 1; 
     while(isShown[b] == true){ 
      b = gen.nextInt(12) + 1; 
     } 

     if (randomAssign < 2){ 
      buttons[b].setImageResource(R.drawable.img01); 
      imagePairs[0].setFirst(b); 

     } 
     else if (randomAssign <3){ 
      buttons[b].setImageResource(R.drawable.img01); 
      imagePairs[0].setSecond(b); 

     } 
     else if (randomAssign < 4){ 
      buttons[b].setImageResource(R.drawable.img02); 
      imagePairs[1].setFirst(b); 

     } 
     else if (randomAssign <5){ 
      buttons[b].setImageResource(R.drawable.img02); 
      imagePairs[1].setSecond(b); 
     } 
     else if (randomAssign < 6){ 
      buttons[b].setImageResource(R.drawable.img03); 
      imagePairs[2].setFirst(b); 
     } 
     else if (randomAssign <7){ 
      buttons[b].setImageResource(R.drawable.img03); 
      imagePairs[2].setSecond(b); 
     } 
     else if (randomAssign < 8){ 
      buttons[b].setImageResource(R.drawable.img04); 
      imagePairs[3].setFirst(b); 
     } 
     else if (randomAssign < 9){ 
      buttons[b].setImageResource(R.drawable.img04); 
      imagePairs[3].setSecond(b); 
     } 
     else if (randomAssign < 10){ 
      buttons[b].setImageResource(R.drawable.img05); 
      imagePairs[4].setFirst(b); 
     } 
     else if (randomAssign < 11){ 
      buttons[b].setImageResource(R.drawable.img05); 
      imagePairs[4].setSecond(b); 
     } 
     else if (randomAssign < 12){ 
      buttons[b].setImageResource(R.drawable.img06); 
      imagePairs[5].setFirst(b); 
     } 
     else if (randomAssign < 13){ 
      buttons[b].setImageResource(R.drawable.img06); 
      imagePairs[5].setSecond(b); 
     } 

     isShown[b] = true; 
     randomAssign++; 
    } 
} 

回答

1

之間

Pairs imagePairs [] = new Pairs[6]; 

而且

imagePairs[0].setFirst(b); 

你需要的地方初始化您對:

imagePairs[0] = new Pairs(); 

如果你沒有,imagePairs [0]爲空,你會得到一個NullPointerException ... 顯然,同樣適用於imagePairs [1],imagePairs [2]等

編輯:這可以用for循環來完成:

for(int i=0; i<imagePairs.length; i++){ 
    imagePairs[i] = new Pairs(); 
} 
相關問題