【发布时间】:2019-06-12 11:16:40
【问题描述】:
我有一个字符串,其值为 R 类中的可绘制位置,如下所示:
String myString = "R.drawable.ic_web_server"
我想将它的值分配给一个 int。
我尝试了Integer.parseString(myString),但它返回 null int。有什么建议吗?
【问题讨论】:
我有一个字符串,其值为 R 类中的可绘制位置,如下所示:
String myString = "R.drawable.ic_web_server"
我想将它的值分配给一个 int。
我尝试了Integer.parseString(myString),但它返回 null int。有什么建议吗?
【问题讨论】:
先去掉前缀"R.drawable.":
String s = myString.replace("R.drawable.", "");
然后用getIdentifier()获取drawable的整数id:
int id = context.getResources().getIdentifier(s, "drawable", context.getPackageName());
context 是您必须提供的有效Context,或者如果您的代码在活动中,您可以省略它:
int id = getResources().getIdentifier(s, "drawable", getPackageName());
【讨论】:
你可以这样做
String value= String.valueOf(R.drawable.ic_web_server);
所以你将拥有资源的 id,然后你可以像这样使用
imageView.setImageResource(Integer.parseInt(value));
无需转换为字符串。我们可以直接用整数来做
int value= R.drawable.ic_web_server;
imageView.setImageResource(value);
【讨论】:
R.drawable.ic_web_server 是一个整数 id。为什么要先转成字符串再转回整数?
R.drawable.ic_web_server 而是一个字符串:String myString = "R.drawable.ic_web_server";。再次阅读问题。
试试
Integer.parseInt(myString);
您在哪里使用parseString。你也可以试试valueOf。
【讨论】:
myString = "R.drawable.ic_web_server"。
使用下面的代码:
int i = R.drawable.ic_web_server;
代替:
String myString = "R.drawable.ic_web_server"
或
String myString = String.valueOf(R.drawable.ic_web_server);
【讨论】:
String myString = "R.drawable.ic_web_server";,问题是通过其字符串 id 获取可绘制对象的 id。再次阅读问题。
您无法将可绘制图像作为字符串获取 因为它返回 int 在imageview中直接使用drawable设置图片
imageview.setImageDrawable(getResources().getDrawable(R.drawable.logo));
【讨论】:
R.drawable.ic_web_server 而是一个字符串:String myString = "R.drawable.ic_web_server";。再次阅读问题。