根据资源的名字获取其ID值
来源:互联网 发布:企业级正规php第三方 编辑:程序博客网 时间:2024/04/28 06:26
import android.content.Context;/** * 根据资源的名字获取其ID值 * * @author shichaohui@meiriq.com */public class MResource { /** * 根据名字获取布局文件的id * * @param context * @param name * 布局文件的名字 * @return */ public static int getLayoutIdByName(Context context, String name) { return getIdByName(context, "layout", name); } /** * 根据名字获取图片的id * * @param context * @param name * 图片的名字 * @return */ public static int getDrawableIdByName(Context context, String name) { return getIdByName(context, "drawable", name); } /** * 根据名字获取string.xml文件中字符串的id * * @param context * @param name * 字符串的名字 * @return */ public static int getStringIdByName(Context context, String name) { return getIdByName(context, "string", name); } /** * 根据名字获取布局文件中组件的id * * @param context * @param name * 组件id属性的名字 * @return */ public static int getViewIdByName(Context context, String name) { return getIdByName(context, "id", name); } /** * 根据名字获取颜色的id * * @param context * @param name * 颜色的名字 * @return */ public static int getColorIdByName(Context context, String name) { return getIdByName(context, "color", name); } /** * 根据名字获取尺寸(dimen)的id * * @param context * @param name * 名字 * @return */ public static int getDimenIdByName(Context context, String name) { return getIdByName(context, "dimen", name); } /** * 根据资源类型和名字获取资源id * * @param context * @param className * 资源类型,如"drawable"/"layout"/"id"/"string"等 * @param name * 资源的名字 * @return */ private static int getIdByName(Context context, String className, String name) { String packageName = context.getPackageName(); Class r = null; int id = 0; try { r = Class.forName(packageName + ".R"); Class[] classes = r.getClasses(); Class desireClass = null; for (int i = 0; i < classes.length; ++i) { if (classes[i].getName().split("\\$")[1].equals(className)) { desireClass = classes[i]; break; } } if (desireClass != null) id = desireClass.getField(name).getInt(desireClass); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } return id; }}
0 0
- 根据资源的名字获取其ID值
- Android 如何根据资源的名字获取其ID值
- 根据资源的名字获取它的ID
- 根据资源ID名获取ID值
- Android根据名字映射资源id的方法
- Android:怎么样通过资源的名字获取资源的id?
- linux根据进程名字获取进程ID
- 根据进程ID获取进程名字
- 根据字符串获取资源id
- 根据字符串获取资源id
- 根据进程ID获取经常名字 和 根据进程名字获取进程ID
- 根据线程ID获取其Handle
- android 根据资源id 获取 资源名称
- 根据资源名获取资源 id
- Android:根据图片的名称获取对应的资源id
- 根据图片文件名获取它的资源ID
- Android利用资源名称获取其ID
- 根据进程ID获取其主线程ID
- mybatis 获取id错误
- LeetCode 206-Reverse Linked List
- 史上最详细 最基础的 android 面试 知识点总结(一)
- 利用迭代器,适配器模式实现统一数据访问接口。
- mysql 多个字段拼接
- 根据资源的名字获取其ID值
- Objective-C Autorelease Pool 的实现原理
- TCP/IP TIME_WAIT状态原理
- 如何解决Linux下USB设备节点名不固定问题
- 如何用VS2010编写动态链接库DLL(非类方式)
- ActiveMQ之介绍及安装
- 把握三要素 SAT考试阅读高分有章可循
- Android实战简易教程-第六枪(各种对话框Dialog用法研究大全)
- 史上最详细 最基础的 android 面试 知识点总结(二)