## Android 中不常用的Enum枚举类实例 ##
引导语:
在Android 开发中,一些基本的类已经可以满足大家开发需求,但是用到多选项,单一结果的情况下(尤其是用于几十个选项),或者几种不可变的选择结果,Enum 一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用 ”==” 来替换 equals 。是一种好的习惯。
Enum实例:
我在开发简易天气预报功能时遇到一个需求,便是接口返回39种天气状况的Code码,每个Code码都匹配一张不同的天气图片,那么,Enum便大显身手了
代码如下
步骤:
1.创建枚举类
2.在枚举类中搭建可以返回图片的方法
3. 转化字符串为枚举类型,接受数据并引用
1;创建枚举类
/**
* Created by Administrator on 2016/5/9.
* 枚举天气实况图片
*/
public enum WeatherCode {
//列举出枚举类所有结果
CODE_0,CODE_1,CODE_2,CODE_3,CODE_4,CODE_5,CODE_6,CODE_7,CODE_8,CODE_9,CODE_10,CODE_11,CODE_12,CODE_13,CODE_14,CODE_15,CODE_16,CODE_17,CODE_18,CODE_19,CODE_20,CODE_21,CODE_22,CODE_23,CODE_24,CODE_25,CODE_26,CODE_27,CODE_28,CODE_29,CODE_30,CODE_31,CODE_32,CODE_33,CODE_34,CODE_35,CODE_36,CODE_37,CODE_38;
public static class returnChoseCode{
private WeatherCode weatherCode;
public returnChoseCode( WeatherCode s) {
this.weatherCode = s;
}
public int change() {
switch (weatherCode) {
case CODE_0:
return R.drawable.weather_0;
case CODE_1:
return R.drawable.weather_1;
。。。(省略38种判断)
}
return 0;
}
}
}
/**
*在要引用枚举的类中,将接口中的code字段转换为枚举类型并引用
*/
WeatherCode weatherCode = WeatherCode.valueOf("CODE_"+watherLocationUtils.get(0).getNow().getCode());
//设置图片据顶部
Drawable drawable = getResources().getDrawable(new WeatherCode.returnChoseCode(weatherCode).change());
drawable.setBounds(0, 0, 200,200);
mine_weather_btn.setCompoundDrawables(null,drawable, null, null);//top
结语:总之枚举类可以有一百种用法,代码并不是一成不变的,多了枚举类只是多了一种合理选择而已。