Android 之 Spinner 键值对的绑定(转)
2024-09-30 13:36:49
很多时候我们会在下拉菜单中绑定一个值,但是 Spinner本身不提供这样的服务
于是在网上找了N久,终于找到一个简单易用的方案;废话不多说,直接上菜了
首先要定义一个Item类,有以下要注意的:
要重写它的.Tostring()函数,因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()
- public class CItem {
- private int ID;
- private String Value = "";
- public CItem() {
- ID = 0;
- Value = "";
- }
- public CItem(int _ID, String _Value) {
- ID = _ID;
- Value = _Value;
- }
- @Override
- public String toString() {
- // 为什么要重写toString()呢?因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()
- // TODO Auto-generated method stub
- return Value;
- }
- public int GetID() {
- return ID;
- }
- public String GetValue() {
- return Value;
- }
- }
在onCreate 里面代码如下:
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mySpinner = (Spinner) findViewById(R.id.Spinner_mySpinner);
- List<CItem> lst = new ArrayList<CItem>();
- for (int i = 0; i < 10; i++) {
- /*
- * 首先新建一个list,赋值
- * ID为序号
- */
- CItem item = new CItem(i, "value of " + i);
- lst.add(item);
- }
- ArrayAdapter<CItem> myaAdapter = new ArrayAdapter<CItem>(this, android.R.layout.simple_spinner_item, lst);
- mySpinner.setAdapter(myaAdapter);
- mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- /*
- * ids是刚刚新建的list里面的ID
- */
- int ids = ((CItem) mySpinner.getSelectedItem()).GetID();
- System.out.println(ids);
- Toast.makeText(getApplicationContext(), String.valueOf(ids), Toast.LENGTH_LONG).show();
- }
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {
- // TODO Auto-generated method stub
- }
- });
- }
main.xml:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <Spinner android:id="@+id/Spinner_mySpinner"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"></Spinner>
- </LinearLayout>
运行结果如图:
以上方法出自于:http://blog.csdn.net/zhangmengxiong/article/details/6291706
最新文章
- Max double slice sum 的解法
- 在tomcat中配置jdk的不同版本
- Codeforces Round #383 (Div. 2) D. Arpa&#39;s weak amphitheater and Mehrdad&#39;s valuable Hoses(分组背包+dsu)
- 对Java Serializable(序列化)的理解和总结
- List集合中的对象根据属性排序
- Docker安装及基本使用方法
- 封装insertAfter、addClass、格式化时间
- 指定URL,计算文件大小
- ASP.NET MVC and jqGrid 学习笔记 5-添加数据
- 解决ie8下h5元素兼容性的问题
- (python)leetcode刷题笔记03 Longest Substring Without Repeating Characters
- HUST 1583 长度单位
- LeetCode算法题-Rotate String(Java实现)
- Laravel 深入理解路由和URL生成
- 脚本一键部署lnmp
- python 3.5下安装pycrypto
- (三)使用CXF开发WebService客户端
- spring根据name或者id获取实例
- POJ 3041&;&;3020
- js的let语句在安卓手机端的QQ浏览器出错的问题
热门文章
- 20145214 《Java程序设计》第9周学习总结
- 往Matlab中添加工具包
- autoCAD 2008 Win7 64位, win8 64位 安装 燕秀工具箱 yanxiu.cui 文件下载
- Qt在VS(Visual Studio)中使用
- CentOS/Linux 开放80、8080端口或者开放某个端口
- 【Docker 命令】- attach命令
- JavaScript中setInterval常见的问题(setInterval第一个参数加引号与不加引号区别)
- Android 多屏幕适配 dp和px的关系 最好用dp
- Delphi Dataset CurValue
- JDK各个版本比较 JDK5~JDK9