我在R类中有一个值可绘制位置的字符串,如下所示:
String myString = "R.drawable.ic_web_server"
我想将其值分配给一个整数。
我尝试了Integer.parseString(myString)
,但是它返回null int。有什么建议吗?
答案 0 :(得分:4)
首先删除前缀"R.drawable."
:
String s = myString.replace("R.drawable.", "");
,然后使用drawable
获取getIdentifier()
的整数ID:
int id = context.getResources().getIdentifier(s, "drawable", context.getPackageName());
context
是您必须提供的有效Context
,或者如果代码在活动中,则可以忽略它:
int id = getResources().getIdentifier(s, "drawable", getPackageName());
答案 1 :(得分:1)
您可以这样做
String value= String.valueOf(R.drawable.ic_web_server);
因此您将拥有资源的ID,然后可以使用like
imageView.setImageResource(Integer.parseInt(value));
无需转换为字符串。我们可以直接通过整数来完成
int value= R.drawable.ic_web_server;
imageView.setImageResource(value);
答案 2 :(得分:0)
尝试
Integer.parseInt(myString);
您正在使用parseString
的位置。您也可以尝试使用valueOf
。
答案 3 :(得分:0)
使用以下代码:
int i = R.drawable.ic_web_server;
代替:
String myString = "R.drawable.ic_web_server"
OR
String myString = String.valueOf(R.drawable.ic_web_server);
答案 4 :(得分:0)
您无法以字符串形式获取可绘制图像 因为它返回int 直接用于从imageview中的drawable设置图像
imageview.setImageDrawable(getResources().getDrawable(R.drawable.logo));