android spinner 实现Text 和 value
android spinner 实现Text 和 value
2011-10-18 11:38
蓝之风
阅读(9864)
评论(1)
编辑
收藏
举报
在Mobile下面实现Text和value非常简单,在控件DorpdownList中为我们已经做好了,直接就可以拿到text和value的值,那么在android下面应该怎么获取Text和Value的…
在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;
- }
- }
- }