2016-05-20 38 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); 
} 
相关问题