2015-06-16 42 views
0

我試圖使用功能如何發送繪製對象作爲參數傳遞給函數

設置ImageView的,如果我們發送的圖像繪製到功能設置可繪製到相應ImageView的功能。

這是功能代碼中,它獲得「身份證」和相應的ID功能後,會調用

public void showpeg(int id) { 
    switch (id) { 
    case 1: 
     showSeagreen(R.drawable.seagreen); 
     break; 
    } 

} 

這是我ShowSeagreen()函數

public void showSeagreen(Drawable draw) { 
    if (iRow == 1) { 
     if (iPlace == 1) { 
      seagreen = 1; 
      one_first.setBackgroundResource(R.drawable.draw); 
      iPlace++; 
     } else if (iPlace == 2) { 
      seagreen = 2; 
      one_two.setBackgroundResource(R.drawable.draw); 
      iPlace++; 
     } 
} 

我知道我這樣做錯,但我找不到辦法做到這一點請任何幫助

在此先感謝

+2

它不會編譯爲'showSeagreen'接收'Drawable'和you'重發'int' – eduyayo

+0

@eduyayo我知道了,但是我怎麼發送一個drawable來showSeagreen –

+0

確實你搞砸了'Drawable' obj ect(這是一個隨時可用的drawable)和一個可繪製的id,它只是表示它,但不可被利用。 – shkschneider

回答

1

代替

showSeagreen(R.drawable.seagreen);

使用:

showSeagreen(getResources().getDrawable(R.drawable.seagreen)); 
+0

你是驚人的,它太簡單了(Y) 工作正常 –

+0

NP很高興我可以幫忙。 –

1

任何資源都是一個整數。 做像這樣 「showSeagreen」:的

public void showSeagreen(int draw) { 
    if (iRow == 1) { 
     if (iPlace == 1) { 
      seagreen = 1; 
      one_first.setBackgroundResource(draw); 
      iPlace++; 
     } else if (iPlace == 2) { 
      seagreen = 2; 
      one_two.setBackgroundResource(draw); 
      iPlace++; 
     } 
} 
+0

使用你的Ans和Ans我選擇了我的問題解決了。 令人驚歎和謝謝你:) –

相關問題