我想以编程方式设置一个 ImageView,将本地资源可绘制对象的名称作为字符串传递。
drawable 显然是以这种方式识别的 int
R.drawable.mydrawable_name
如果不在条件开关中映射所有内容,我该如何解决这个问题?
我想避免这种形式的东西
if(myString.equal"stringname_1"){
myImageview.setImageResource( R.drawable.stringname_1);
}
else if(myString.equal"stringname_1")....
etc
最佳答案
为此,您可以使用 getResources().getIdentifier()(http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String,java.lang.String,java.lang.String))。对于您的代码,它看起来像这样:
int id = getResources().getIdentifier(myString, "drawable", getPackageName());
Drawable drawable = getResources().getDrawable(id);
myImageview.setImageDrawable(drawable);
上面的代码假设你在一个 Activity 中。
关于android - 如何使用本地资源的名称字符串设置 ImageView 避免资源的条件映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17454374/