2016-05-20 74 views
1

目前我有一個巨大的開關案例陳述,我想簡化。我想提取一個方法的全重複語句,並用適當的參數調用這個方法。它現在的例子可能是:如何將資源傳遞給Android中的方法調用?

switch (colouprivate void setRoundCornersStyle(Resources resource){ 
    chooseCategory_spinner.setBackgroundResource(resource);r) { 
     case "#FF9800": 
      spinner1.setBackgroundResource(R.drawable.orange); 
      spinner2.setBackgroundResource(R.drawable.orange);     
      break; 

這裏縮短了。所有的通話都是一樣的,唯一的區別是通過的實際顏色。

到位情況如下,我們如何通過資源的方法調用Android中,像這樣的問題:

case "#FF9800": 
    setRoundCornerStyle(R.drawable.orange); 

private void setRoundCornersStyle(Resources resource){ 
    spinner1.setBackgroundResource(resource); 
} 

我希望,這樣我就能夠實際上提取所有的重複,並使其清晰和簡單。歡迎任何建議!

回答

3

存儲在R對象中的資源標識符實際上只不過是一堆表示實際資源的整數。您可以看到這也in the API docs。該視圖的setBackgroundResource方法的簽名如下:

void setBackgroundResource (int resid) 

出於這個原因,你可以通過資源ID爲int到你的方法:

private void setRoundCornersStyle(int resource){ 
    spinner1.setBackgroundResource(resource); 
} 
相關問題