将枚举Enum作为数据源添加到列表
来源:互联网 发布:拉萨市数控编程人才网 编辑:程序博客网 时间:2024/05/21 08:03
这里以Spinner为例
1.首先定义一个枚举类型:
public enum Language { AUTO_DETECT(""), AFRIKAANS("af"), ALBANIAN("sq"), AMHARIC("am"), ARABIC("ar"), ARMENIAN("hy"), AZERBAIJANI("az"), BASQUE("eu"), BELARUSIAN("be"), BENGALI("bn"), BIHARI("bh"), BULGARIAN("bg"), BURMESE("my"), CATALAN("ca"), CHEROKEE("chr"), CHINESE("zh"), CHINESE_SIMPLIFIED("zh-CN"), CHINESE_TRADITIONAL("zh-TW");private String valueStr;private Language(String valueStr) {this.valueStr = valueStr;}//获取值public String value() {return valueStr;}}
注:必须创建构造函数
2.添加布局<Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="@dimen/activity_vertical_margin" android:paddingRight="@dimen/activity_vertical_margin" />
3.添加数据源
//SpinnerSpinner mSpinner = (Spinner) findViewById(R.id.spinner1);mSpinner.setAdapter(new ArrayAdapter<Language>(this, android.R.layout.simple_spinner_item, Language.values()));mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View v,int position, long id) {Language chooseLang = (Language) parent.getItemAtPosition(position);String show = "键:"+ chooseLang.name() + ", 值:" + chooseLang.value() + ", 下标:" + chooseLang.ordinal();Toast.makeText(getBaseContext(), show, Toast.LENGTH_LONG).show();}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {}});
注:
Type.name() //获取枚举的名字,相当于键-值对的键;
Type.value() //定义枚举时自定义的方法value(),相当于获取键-值对的值;
Type.ordinal() //获取枚举所在的位置,相当于数组的下标,从0开始;
Type.values() //得到数据集合
Type.valueOf(String arg0) //根据值获取对象
4.稍微复杂一点,自己定义适配器,并显示枚举数据
private class MyListAdapter extends BaseAdapter{@Overridepublic int getCount() {return Language.values().length;<span style="white-space:pre"></span>//大小}@Overridepublic Language getItem(int position) {return Language.values()[position];<span style="white-space:pre"></span>//返回枚举}@Overridepublic long getItemId(int position) {return 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder mHolder = null;if (convertView == null) {mHolder = new ViewHolder();convertView = LayoutInflater.from(getBaseContext()).inflate(R.layout.item_enum_data_list, null);<span style="white-space:pre"></span>//item布局mHolder.iv = (ImageView) convertView.findViewById(R.id.item_imv);mHolder.tv = (TextView) convertView.findViewById(R.id.item_tv);convertView.setTag(mHolder);}else {mHolder = (ViewHolder) convertView.getTag();}Language lang = Language.values()[position];mHolder.tv.setText(lang.name());return convertView;}class ViewHolder{ImageView iv;TextView tv;}}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical" android:orientation="horizontal" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin" > <ImageView android:id="@+id/item_imv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/exclamation" /> <TextView android:id="@+id/item_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="@dimen/activity_vertical_margin" android:text="TextView" /></LinearLayout>
5.效果(无图。。(-。-;))
0 0
- 将枚举Enum作为数据源添加到列表
- 获得enum枚举名称,将枚举标签同步到游戏
- 扩展、添加枚举(enum)
- C#将Enum枚举映射到文本字符串
- 如何将Excel作为UltraWebGrid 数据源绑定到UltraWebGrid中?
- Java编程:枚举enum中,将方法附加到枚举常量
- enum枚举类型作为成员变量
- enum枚举类型作为成员变量
- 将DataTable作为ListView数据源
- 将用户添加到sudoer列表
- CentOS将用户添加到sudoer列表
- 将用户添加到sudoer列表
- CentOS将用户添加到sudoer列表
- Enum 添加到 comtextbox
- 绑定Enum枚举到combobox
- 将Enum枚举转换成字符串数组
- enum可以添加新方法-枚举类型
- 如何将枚举类型作为数据源绑定在一个DROPDOWNLIST上,并指定用户可见枚举的真实值是名称
- 实现中等难度通讯录。需求: 1、定义联系人类AddressContact。实例变量:姓名(拼音,首字母大写)、性别、电话号码、住址、分组名称、年龄。方法:自定义初始化方法(姓名、电话号码)、显示联系人
- y与小伙伴玩游戏画面被曝光 240万人在线观战
- Cocos2dx 小技巧(十四)ScrollView实现缩放效果
- Silverlight游戏特效开发(二) : 让光环转起来
- 学习Unity3D之血条和打死怪物增加。
- 将枚举Enum作为数据源添加到列表
- lnmp升级php出现502 bad gateway错误
- 想做的总是很多
- Node JS
- 第2章 2.2 JSP基本原理
- srand((unsigned)(time(NULL)))的用法
- C++指针基础
- 《软件测试经验与教训》--读书笔记
- 谁有空帮我解个ex4文件