Theme读取的工具类
来源:互联网 发布:数据透视表取消总计 编辑:程序博客网 时间:2024/06/10 23:33
用TypedArray读Theme很麻烦,很机械。可以用annotation来搞定。
public static void fillObject(Context context, Object object) { Class clazz = object.getClass(); ResIds ids = (ResIds) clazz.getAnnotation(ResIds.class); if (ids == null) { return; } Field[] fields = clazz.getFields(); TypedArray ta = context.getTheme().obtainStyledAttributes(ids.ids()); for (Field field : fields) { ResIndex index = field.getAnnotation(ResIndex.class); if (index == null) { continue; } field.setAccessible(true); try { field.setInt(object, ta.getResourceId(index.index(), 0)); } catch (IllegalAccessException e) { e.printStackTrace(); } } ta.recycle(); } @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface ResIndex { @StyleableRes int index(); } @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface ResIds { @StyleableRes int[] ids(); }
存在一个问题:R中的id都不是final的,可以参考ButterKnife的处理方式。
而且,这里面有一个好处,传入的Object实际上是一个ViewModel,可以通过直接的DataBinding快速处理。
阅读全文
0 0
- Theme读取的工具类
- 读取配置文件的工具类
- 读取配置文件信息的工具类
- XPath读取xml的工具类
- 读取properties配置文件的工具类
- 读取properties文件的工具类
- poi读取excel的工具类
- java读取Properties文件的工具类
- 读取资源文件的工具类.
- properties配置文件的读取工具类
- java工具类之配置文件的读取
- 读取properties配置文件的工具类
- 读取XML配置文件的工具类
- 读取Properties文件的工具类
- 读取properties文件的工具类
- 读取properties配置文件的工具类
- 读取Excel文档的内容工具类
- 读取配置文件工具类
- H5轮播图简版
- creating symbolic link XXXXXX : Operation not supported
- Dubbo Exchange 信息交换层
- Head First Python第一章:列表
- 坐标转换流程与公式 七参数 四参数
- Theme读取的工具类
- Oracle数据库导入导出
- viewpager+自动轮播+无线轮播+小圆点
- 实现spring 框架需要哪些包及其作用
- think in java第十章内部类 总结随笔
- 量取牛奶codevs2094
- HttpUtils
- SharedPreferences封装
- Linq GroupBy去重