一、字典表,用来存放键值对信息

package com.ljq.activity;

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;
}

}

二、activity类,绑定数据、获取选中的键值对

package com.ljq.activity;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;

public class MainActivity extends Activity {
private Spinner mySpinner;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.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) {

}
});
}
}

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

四、运行结果如下:




更多相关文章

  1. android绘制过程
  2. android如何获取默认的桌面程序
  3. Appium自动化测试-Android启动实例(2)
  4. Android(安卓)多线程
  5. android 数据存储技术
  6. Android基础练习
  7. 获取手机屏幕大小(DisplayMetrics类取得画面宽高)
  8. android Service控件

随机推荐

  1. 能让 Windows 10 运行 Android(安卓)应用
  2. Android应用程序从源码到安装包的整个过
  3. Android(安卓)AIDL和远程Service调用(一)
  4. ImageView中图片保存到文件
  5. onTouchEvent, onClick及onLongClick的调
  6. 基于Socket的Android聊天室
  7. android中的SQLite数据库小介
  8. Windows git和repo下载Android源代码
  9. Android开发之UI线程和非UI线程
  10. [Android] 使用Fragment创建动态UI