如果 的值为logo
( "R.drawable.logo"
a String
),则无法解析为int
. R.drawable.logo 实际上是对 中的static int logo
变量的引用static class drawable
,它是生成的资源类的子类R
。R
是一个生成的资源类,你可以在你的项目gen
文件夹下找到它。
你必须自己解析它。如果您知道这是一个将返回的可绘制对象,则必须执行以下操作:
String logoParts [] = logo.split ("\\.");
int logoId = getResources ().getIdentifier (logoParts [logoParts.length - 1], "drawable", "com.example.app");
或者,您可以将其分成一个函数:
public static int parseResourceString (Stinrg resString, String package) {
String resParts [] = resString.split ("\\.");
return getResources ().getIdentifier (resParts [resParts.length - 1], resParts [resParts.length - 2], package);
}