安卓Spinner用法最简单获取键值对

//安卓开发过程中Spinner用法最简单获取键值对
public class MainActivity extends Activity {
private Spinner mySpinner;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mySpinner = (Spinner) findViewById(R.id.mySpinner);
       List<Dict> dicts = new ArrayList<Dict>();
       dicts.add(new Dict(1, "测试1"));
       dicts.add(new Dict(2, "测试2"));
       dicts.add(new Dict(3, "测试3"));
       dicts.add(new Dict(4, "测试4"));
       ArrayAdapter<Dict> adapter = new ArrayAdapter<Dict>(this,
               android.R.layout.simple_spinner_item, dicts);
       mySpinner.setAdapter(adapter);
       mySpinner.setOnItemSelectedListener(new OnItemSelectedListener(){
           public void onItemSelected(AdapterView<?> parent, View view,
                   int position, long id) {
               // 获取键的方法:mySpinner.getSelectedItem().toString()或((Dict)mySpinner.getSelectedItem()).getId()
               // 获取值的方法:((Dict)mySpinner.getSelectedItem()).getText();
               Toast.makeText(MainActivity.this,
                       "键:" + mySpinner.getSelectedItem().toString() + "、" + ((Dict) mySpinner.getSelectedItem()).getId() + 
                       ",值:" + ((Dict) mySpinner.getSelectedItem()).getText(),
                       Toast.LENGTH_LONG).show();
           }


           public void onNothingSelected(AdapterView<?> parent) {
               
           }
       });
   }

}


package com.example.demo9_spinner;


import java.io.Serializable;


@SuppressWarnings("serial")
public class Dict implements Serializable{
private Integer id;
   private String text;


   public Dict() {
   }


   public Dict(Integer id, String text) {
       super();
       this.id = id;
       this.text = text;
   }


   public Integer getId() {
       return id;
   }


   public void setId(Integer id) {
       this.id = id;
   }


   public String getText() {
       return text;
   }


   public void setText(String text) {
       this.text = text;
   }


   /**
    * 为什么要重写toString()呢?
    * 
    * 因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()
    */
   @Override
   public String toString() {
       return text;
   }


}


<?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:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/mySpinner"/>
</LinearLayout>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值