目前我有一个巨大的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);
我希望通过这种方式我能够实际提取所有重复内容并使其清晰简单。欢迎任何建议!
答案 0 :(得分:3)
存储在R
对象中的资源标识符实际上只是一堆整数,代表实际资源。
您也可以看到in the API docs。视图的setBackgroundResource
方法的签名如下所示:
void setBackgroundResource (int resid)
因此,您可以将资源ID作为int
传递到您的方法中:
private void setRoundCornersStyle(int resource){
spinner1.setBackgroundResource(resource);
}