Android中通过反射获取资源Id(特别用在自己定义一个工具将其打成.jar包时,特别注意资源的获取)

在将自己写的工具打成.jar包的时候,有时候会需要引用到res中的资源,这时候不能将资源一起打包,只能通过反射机制动态的获取资源.

/**
* 反射得到组件的id号

*/
public static int getCompentID(String packageName, String className,String idName) {
int id = 0;
try {
Class<?> cls = Class.forName(packageName + ".R$" + className);
id = cls.getField(idName).getInt(cls);
} catch (Exception e) {
LogUtil.LogPrint(LogUtil.LOG_ERROR, "缺少" + idName + "文件!");
e.printStackTrace();
}
return id;
}

你可能感兴趣的:(android)