有时候因为某些包不能通过 R.java
依赖访问资源文件
这时候只能通过反射获取 资源
/**
* 反射得到组件的id号
* @param packageName 包名
* @param className layout,string,drawable,style,id,color,array
* @param idName 唯一文件名
* @return 资源id
*/
public static int getCompentID(String className, String idName) {
int id = -1;
Log.v("testapp", "appname :"+GameApplication.getContext().getPackageName());
try {
Class<?> cls = Class.forName(GameApplication.getContext().getPackageName()
+ ".R$" + className);
Log.v("testapp", "classname :"+cls.getName());
id = cls.getField(idName).getInt(cls);
} catch (Exception e) {
e.printStackTrace();
Log.v("testapp", "get error");
}
return id;
}
网友评论