用枚举构造完成资源绑定
来源:互联网 发布:札幌住宿 知乎 编辑:程序博客网 时间:2024/06/05 08:56
转载请标注:
披萨大叔的博客 http://blog.csdn.net/qq_27258799/article/details/51512715
如果您觉得这篇文章对您有帮助,请点下文章最下面的赞~
如下图,我们如果想要实现这样一个布局,ListView每个item有两个ImageView和两个TextView,初始化的时候,这些图标资源和文字都要赋值,也就是说,这些资源都是需要我们可以配置的,如果把这些个资源绑定到一起?用一堆数组?用XML?
到目前为止,最好的方式我认为还是枚举构造:
public enum ListViewItem{ /** * 待处理工单 */ FORHANDLED(R.drawable.group1, R.color.red, R.string.workorder_forHandled, 0, false), /** * 处理中工单 */ HANDLING(R.drawable.group2, R.color.brown, R.string.workorder_handling, 0, false), /** * 已完成工单 */ COMLETE(R.drawable.group3, R.color.darkgray, R.string.workorder_complete, 0, false); private int iconResId; private int titleResId; private int initialCount; private boolean hasNew; private int colorResId; /** * @param iconResId * 图标资源ID * @param colorResId * subName文字颜色 * @param titleResId * 标题资源ID * @param initialCount * 已经获得的工单数量 * @param hasNew * 是否有新工单 */ private WorkOrderGroupEnum(int iconResId, int colorResId, int titleResId, int initialCount, boolean hasNew) { this.iconResId = iconResId; this.titleResId = titleResId; this.initialCount = initialCount; this.colorResId = colorResId; this.hasNew = hasNew; } //……Getters方法……}
如上面代码,我们把各种资源已经可能用到的参数,都作为枚举构造的参数,这样我们在用的时候直接这样:
ListViewItem[] items = ListViewItem.values();
如此,便完成了初始化工作,得到了资源对象。
根据枚举类的特性,枚举类的构造函数只能是private的,只在枚举类初始化的时候调用,所以保证了枚举类的“单例”特性,枚举类的实例默认就是线程安全的,并且可以被自由序列化,所以这也是枚举单例最被推崇的原因。
综上所述,为什么不用枚举类完成资源绑定呢?
1 0
- 用枚举构造完成资源绑定
- c# 用枚举绑定列表控件
- 如何绑定枚举
- DropDownList绑定枚举类型
- listControl 绑定枚举类型
- 绑定枚举类型(反射)
- DropDownList绑定枚举类型
- 枚举绑定到DropDownList
- DropDownList 绑定 枚举 Enum
- 枚举中的构造函数
- 属性,构造函数,枚举
- Sum(构造,枚举)
- EnumResourceNames枚举资源
- combox绑定枚举和读取枚举
- 用私有构造器或者枚举类型强化 Singleton属性
- EffectiveJava-用私有构造器或者枚举强化Singleton属性
- 用私有构造器或者枚举类型强化Singleton属性
- 用私有构造器或者枚举类型强化Singleton属性
- CStatic
- opencv-ios开发笔记5 利用二值图像简单提取轮廓
- 显性形状回归法人脸对齐Face Alignment by Explicit Shape Regression(improving)
- 高德地图全解析--定位篇
- static静态变量(静态全局和静态局部)
- 用枚举构造完成资源绑定
- Windows学习总结(5)——【IIS建站】Windows10怎么打开站点服务?
- 飞控信号SBUS信号解析为PWM信号输出
- perl 继承概述
- java入门教程-8.8Java中文件的压缩处理
- 若干局域网的服务器,一台服务器上的文件传输到其他几台机器上(scp for )
- android项目编译报错:error occurred during the build
- 【杭电oj】2043 - 密码(水)
- 矩阵变换