美文网首页
Android 动态获取 id 获取资源 反射获取资源id

Android 动态获取 id 获取资源 反射获取资源id

作者: Asbefore如初_3142 | 来源:发表于2019-03-15 15:39 被阅读0次

    有时候因为某些包不能通过 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;
        }
    

    相关文章

      网友评论

          本文标题:Android 动态获取 id 获取资源 反射获取资源id

          本文链接:https://www.haomeiwen.com/subject/cwfrmqtx.html