如何将资源传递给Android中的方法调用?

时间:2016-05-20 23:32:18

标签: java android parameter-passing android-resources

目前我有一个巨大的switch-case语句,我想简化它。我想将所有重复的语句提取到方法中,并使用适当的参数调用此方法。现在的例子可能是:

[from django.conf.urls import patterns, url
from . import views, feed

    urlpatterns = patterns(
        '',
        url(r'^feed/$', feed.LatestPosts(), name="feed"),
        url(r'^', views.BlogIndex.as_view(), name="index"),
        url(r'^entry/(?P<slug>\S+)$', views.BlogDetail.as_view(), name="entry_detail"),

)][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;
case "#FF9800":
    setRoundCornerStyle(R.drawable.orange);

我希望通过这种方式我能够实际提取所有重复内容并使其清晰简单。欢迎任何建议!

1 个答案:

答案 0 :(得分:3)

存储在R对象中的资源标识符实际上只是一堆整数,代表实际资源。

您也可以看到in the API docs。视图的setBackgroundResource方法的签名如下所示:

void setBackgroundResource (int resid)

因此,您可以将资源ID作为int传递到您的方法中:

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