Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 453|回复: 0

开发交流:android spinner 实现Text 和 value

[复制链接]

该用户从未签到

发表于 2011-10-24 10:38:56 | 显示全部楼层 |阅读模式
在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;

                }

               

        }

}
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 06:18 , Processed in 0.299596 second(s), 38 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表