如何将字符串变量设置为图像视图资源?
How to set a string variable as image view resource?
我正在传递一个字符串值,它也是 drawable
文件夹中使用 intent.putExtra
的图像的名称。然后从预期的 class.
的 onCreate 中成功提取字符串
但我想知道如何在设置 activity 的图像视图的图像资源时将传递的字符串 message
设置为图像名称。
我猜测 message 变量在我使用它设置为图像资源名称之前需要转换或转换。
有人对如何实现这一目标有任何建议吗?
这是我到目前为止在 activity:
中尝试过的
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_result);
imageView = (ImageView) findViewById(R.id.capturedDebriImageView);
Bundle bundle = getIntent().getExtras();
//contents of message is "aluminium"
String message = bundle.getString("message");
imageView.setImageResource(R.drawable.message);
//if I set it as the actual image name it works but not when
//I set the image resource to the message which contains the string of the
//same name.
imageView.setImageResource(R.drawable.aluminium);
}
试试这个:
int id = getResources().getIdentifier(message, "drawable", this.getPackageName());
if(id != 0){
imageView.setImageResource(id);
}else{
imageView.setImageResource(R.drawable.aluminium);
}
我正在传递一个字符串值,它也是 drawable
文件夹中使用 intent.putExtra
的图像的名称。然后从预期的 class.
但我想知道如何在设置 activity 的图像视图的图像资源时将传递的字符串 message
设置为图像名称。
我猜测 message 变量在我使用它设置为图像资源名称之前需要转换或转换。
有人对如何实现这一目标有任何建议吗?
这是我到目前为止在 activity:
中尝试过的@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_result);
imageView = (ImageView) findViewById(R.id.capturedDebriImageView);
Bundle bundle = getIntent().getExtras();
//contents of message is "aluminium"
String message = bundle.getString("message");
imageView.setImageResource(R.drawable.message);
//if I set it as the actual image name it works but not when
//I set the image resource to the message which contains the string of the
//same name.
imageView.setImageResource(R.drawable.aluminium);
}
试试这个:
int id = getResources().getIdentifier(message, "drawable", this.getPackageName());
if(id != 0){
imageView.setImageResource(id);
}else{
imageView.setImageResource(R.drawable.aluminium);
}