我尝试从另一个活动的字符串中设置图片。
我在MainActivity上的字符串
public static String imagee; // -- this is out of onCreate
capeMod.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0)
{
MainActivity.imagee = "drawable/pc";
Intent intent = new Intent(context, ModActivity.class);
startActivity(intent);
}
});
另一项活动:(是的,这是完全错误的。)
String imagee = MainActivity.imagee;
private void showImage() {
// int imageResource = R.drawable.icon;
int imageResource = getResources().getIdentifier(imagee, null, getPackageName());
Drawable imagee = getResources().getDrawable(imageResource);
image.setImageDrawable(image);
}
我可以从另一个活动的字符串中设置TextView,但无法设置ImageView。我可以解决问题吗?
答案 0 :(得分:1)
您可以使用Intent.putExtra()
发送数据和String
,也可以使用Activity
使用Intent.getExtras()
来接收数据。阅读更多here
答案 1 :(得分:-1)
你应该使用这样的东西:
假设您可以像使用静态字符串一样访问字符串值,请使用resources:
Resources res = getResources();
String imageName= MainActivity.imagee;
int resID = res.getIdentifier(imageName, "drawable", getPackageName());
Drawable drawable = res.getDrawable(resID );
image.setImageDrawable(drawable);
编辑:即使它有效,访问值的正确方法也不是通过 static 方式,最好通过 Intents 和 putExtra :)