android spinner 实现Text 和 value
2011-10-18 11:38 蓝之风 阅读(10184) 评论(1) 编辑 收藏 举报在Mobile下面实现Text和value非常简单,在控件DorpdownList中为我们已经做好了,直接就可以拿到text和value的值,那么在android下面应该怎么获取Text和Value的值呢?一般有两种思路:
1、通过自定义数据源的方式来实现获取Text和value的值;
2、通过自定义Adapter的方式来实现获取Text和value的值。
本文将通过第一种方式来实现获取Text和value的值,以及通过value来绑定spinner中选中的值。
首先定义spinner的数据结构如下:
/** * @author xushilin * xsl xushilin@kingtoneinfo.com * @version: 创建时间:2011-10-18 上午11:12:06 * 说 明: Spinner数据源的结构 * 修改历史: */ public class SpinnerData { private String value = ""; private String text = ""; public SpinnerData() { value = ""; text = ""; } public SpinnerData(String _value, String _text) { value = _value; text = _text; } @Override public String toString() { return text; } public String getValue() { return value; } public String getText() { return text; } }
上面的结构包含两个属性,value保存的是值,text保存显示给用户的数据。
下面创建spinner的数据实例并绑定到spinner上:
private void Bind() { List<SpinnerData> lst = new ArrayList<SpinnerData>(); for (int i = 0; i < 10; i++) { SpinnerData c = new SpinnerData(i + "", "显示值" + i); lst.add(c); } ArrayAdapter<SpinnerData> Adapter = new ArrayAdapter<SpinnerData>(this, android.R.layout.simple_spinner_item, lst); Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp.setAdapter(Adapter); }
在onCreate()获取界面上的实例控件并调用上面的Bind()方法。运行得到下图:
点击点击获取值按钮得到value和text如下图:
点击回显按钮spinner将选中value=5的text如下图:
全部代码:
/** * */ package com.demo.list; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Spinner; import android.widget.Toast; import com.demo.HelloWorld.R; /** * @author xsl xsl xushilin@kingtoneinfo.com * @version: 创建时间:2011-9-21 上午09:56:43 说 明: 修改历史: */ public class SpinnerSelectValue extends Activity implements OnClickListener { private Spinner sp; private Button btnGetValue,btnSetValue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.spinner_select_value); sp = (Spinner) findViewById(R.id.spinner1); btnGetValue=(Button)findViewById(R.id.btnGetValue); btnGetValue.setOnClickListener(this); btnSetValue=(Button)findViewById(R.id.btnSetValue); btnSetValue.setOnClickListener(this); Bind(); } private void Bind() { List<SpinnerData> lst = new ArrayList<SpinnerData>(); for (int i = 0; i < 10; i++) { SpinnerData c = new SpinnerData(i + "", "显示值" + i); lst.add(c); } ArrayAdapter<SpinnerData> Adapter = new ArrayAdapter<SpinnerData>(this, android.R.layout.simple_spinner_item, lst); Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp.setAdapter(Adapter); } /** * @author xushilin * xsl xushilin@kingtoneinfo.com * @version: 创建时间:2011-10-18 上午11:12:06 * 说 明: Spinner数据源的结构 * 修改历史: */ public class SpinnerData { private String value = ""; private String text = ""; public SpinnerData() { value = ""; text = ""; } public SpinnerData(String _value, String _text) { value = _value; text = _text; } @Override public String toString() { return text; } public String getValue() { return value; } public String getText() { return text; } } public void onClick(View v) { switch(v.getId()){ case R.id.btnGetValue: String s="value="+((SpinnerData)sp.getSelectedItem()).getValue() +" && Text="+((SpinnerData)sp.getSelectedItem()).getText(); Toast.makeText(this, s, Toast.LENGTH_LONG).show(); break; case R.id.btnSetValue: @SuppressWarnings("unchecked") ArrayAdapter<SpinnerData> lst=(ArrayAdapter<SpinnerData>)sp.getAdapter(); for(int i=0;i<lst.getCount();i++){ if(lst.getItem(i).getValue().equalsIgnoreCase("5")){ sp.setSelection(i); break; } } break; } } }
作者:蓝之风
出处:http://www.cnblogs.com/vaiyanzi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架