Android中通过反射获取资源Id(特别用在自己定义一个工具将其打成.jar包时,特别注意资源的获取)
2016-06-23 10:31
696 查看
在我转载的一篇名为:Android中利用java反射机制Reflect
介绍了,什么是反射机制,以及他的具体使用。接下来我将简单介绍一下,在Android中是如何通过反射获取资源的ID的。废话不说,先看代码:
在将自己写的工具打成.jar包的时候,有时候会需要引用到res中的资源,这时候不能将资源一起打包,只能通过反射机制动态的获取资源.
[java] view
plain copy
/**
* 反射得到组件的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中是如何通过反射获取资源的ID的。废话不说,先看代码:
在将自己写的工具打成.jar包的时候,有时候会需要引用到res中的资源,这时候不能将资源一起打包,只能通过反射机制动态的获取资源.
[java] view
plain copy
/**
* 反射得到组件的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之TabWidget选项卡
- 使用Android studio Gradle 实现友盟多渠道打包
- Android中LayoutParams的基本用法
- Android中Context详解 ---- 你所不知道的Context
- Android Studio教程--给Android Studio安装Genymotion插件
- android Spinner使用问题汇总
- Android EditText设置默认不弹出软键盘,点击EditText外部隐藏软键盘,EditText获取焦点时隐藏hint
- Android Studio 中依赖库v4与v7冲突问题
- Android 数据存储(二)之SharedPreferences存储
- Android中Bitmap和Drawable
- (OK) Android adb连接VirtualBox方式
- Android上下TabHost设置及Did you forget to call 'public void setup(LocalActivityManager activityGroup)解决方法
- Android 中的 Service 全面总结
- Android小经验
- android日期和时间选择器
- Android 常用工具类源码大全
- Android StatusBar增加图标
- 性能测试——MAT
- Android Studio2.1.2简单设置
- Android 隐藏标题栏,状态栏;设置横竖屏