android通过字符串获取ResourceId
来源:互联网 发布:linux下utf8转gbk 编辑:程序博客网 时间:2024/06/16 07:22
在 封装框架 编译jar文件中 有一个 应用场景,在不引入 包名的情况下 获取资源文件的 id
为什么 不能引入包名呢? 因为 如果在jar文件中 使用了 例如以下代码
setContentView(R.layout.activity_main);
就会 自动导入一个 已app包名为路径 的 一个名字为R的 类
import com.demo.po.R;
如果 android 的项目工程 没有这样的包名 或者module 自然就会报错了 (找不到 R文件)
回到正题 如何 解决呢?直接上 硬菜
/** * 获取资源在r文件中的标示 * * @param context * @param resName * @param resType * @return */public static int getIndentifier(Context context, String resName,String resType) {return context.getResources().getIdentifier(resName, resType,context.getPackageName());}public static int getLayoutIndentifier(Context context, String layoutName) {return getIndentifier(context, layoutName, "layout");}public static int getIDIndentifier(Context context, String idName) {return getIndentifier(context, idName, "id");}public static int getStyleIdentifier(Context context, String styleName) {return getIndentifier(context, styleName, "style");}public static int getDrawableIdentifier(Context context, String drawableName) {return getIndentifier(context, drawableName, "drawable");}public static int getStringIdentifier(Context context, String drawableName) {return getIndentifier(context, drawableName, "string");}
补充 另外一种方式:反射
/* *@parama variableName 例如: drawable;string *@param clas 例如:R.drawable.class;R.string.class * * */ public int getResId(String variableName, Class<?> clas) { try { Field idField = clas.getDeclaredField(variableName); return idField.getInt(idField); } catch (Exception e) { e.printStackTrace(); return -1; } }
阅读全文
0 0
- android通过字符串获取ResourceId
- android通过拼写字符串获取资源文件
- Android-通过URL获取网络资源 Json 字符串
- 自定义属性引入layout获取不到resourceId的问题
- 通过字符串获取资源ID
- JavaScript 通过字符串获取function
- 通过Resource的Name得到其标识符(Identifier), 即ResourceID
- android 通过字符串来获取R下面资源的ID 值
- Android 通过字符串来获取R下面资源的ID 值
- Android 通过字符串来获取R下面资源的ID 值
- Android通过http方式获取JSON字符串并解析的注意事项(乱码,小黑框)
- Android 通过字符串来获取R下面资源的ID 值
- Android 通过字符串来获取R下面资源的ID 值 文字资源
- Android 通过字符串来获取R下面资源的ID 值
- Android 通过字符串来获取R下面资源的ID值
- Android 通过字符串来获取R下面资源的ID 值
- Android 通过字符串来获取R下面资源的ID 值
- android 通过字符串来获取R下面资源的ID 值
- 【Android 源码】bus 实现原理
- HttpPostedFile类
- 知识图谱
- ASP.NET MVC 利用ActionFilterAttribute来做权限等
- C++基础之引用与指针的区别与联系、常引用使用时应注意的问题
- android通过字符串获取ResourceId
- 斯坦福 stanford coreNLP 中的PCFG parser-lexparser
- arduino的i2c接口
- 合并两有序链表
- vue+element-ui,树形表格,可以做权限管理模块,可折叠,全选,部分全选
- 1--理解并学习javascript中的面向对象(OOP)
- JS放在head中和放在body中的区别
- pycharm下安装opencv3到anaconda2
- 什么是P问题、NP问题和NPC问题