Android,从字符串获取资源ID?
我需要将资源ID传递给我的一个类中的方法。它既需要使用引用指向的id,也需要使用字符串。我应该如何最好地做到这一点?
例如:
R.drawable.icon
我需要获取它的整数ID,但是我还需要访问字符串“ icon”。
如果我只需要传递给该方法的是“ icon”字符串,那将是更好的选择。
回答:
我不知道那个Resources.getIdentifier()
存在。
在我的项目中,我使用以下代码来做到这一点:
public static int getResId(String resName, Class<?> c) { try {
Field idField = c.getDeclaredField(resName);
return idField.getInt(idField);
} catch (Exception e) {
e.printStackTrace();
return -1;
}
}
这样将用于获取R.drawable.icon
资源整数值的值
int resID = getResId("icon", R.drawable.class); // or other resource class
我刚刚找到了一篇博客文章,说这Resources.getIdentifier()
比像我那样使用反射要慢
以上是 Android,从字符串获取资源ID? 的全部内容, 来源链接: utcz.com/qa/411504.html