Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android開發步步為營之23:Spinner進階綁定包含key和value的對象

android開發步步為營之23:Spinner進階綁定包含key和value的對象

編輯:關於Android編程

Spinner一般綁定字符串數組就可以了,比如之前 的做法 ArrayAdapter adapter = ArrayAdapter.createFromResource(
this, R.array.fruit, android.R.layout.simple_spinner_item);,有時候,我們需要綁定一個對象,比如顯示的時候,顯示value,但是程序需要獲取的是key值,這個時候,我們就需要綁定自定義的對象。試驗場景:證件類型下拉框,顯示給用戶看的是身份證、護照、戶口本等等的文字,但是我們需要記錄數據庫的是對應的key 比如0,1,2。
一、設計Activity SpinnerKeyValueActivity
/**
*
*/
package com.figo.helloworld;

import java.util.ArrayList;
import java.util.List;
import android.view.View;
import android.app.Activity;
import android.os.Bundle;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

/**
* @author zhuzhifei
*
*/
public class SpinnerKeyValueActivity extends Activity {

private Spinner spcerticatetype;
private TextView tvcerticatetype;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//設置頁面
setContentView(R.layout.spinnerkeyvalue);
spcerticatetype=(Spinner)findViewById(R.id.spcerticatetype);
tvcerticatetype=(TextView)findViewById(R.id.tvcerticatetype);
//綁定數據到spinner
BindData();
}
//綁定數據到spinner
private void BindData()
{
// 設置證件類型
List lst = new ArrayList();
SpinnerItem item0 = new SpinnerItem("0", "身份證");
SpinnerItem item1 = new SpinnerItem("1", "護照");
SpinnerItem item2 = new SpinnerItem("2", "軍官證");
SpinnerItem item3 = new SpinnerItem("3", "士兵證");
SpinnerItem item4 = new SpinnerItem("4", "回鄉證");
SpinnerItem item5 = new SpinnerItem("5", "臨時身份證");
SpinnerItem item6 = new SpinnerItem("6", "戶口本");
SpinnerItem item7 = new SpinnerItem("7", "其他");
SpinnerItem item8 = new SpinnerItem("8", "外國人居留證");
SpinnerItem item9 = new SpinnerItem("9", "警官證");
lst.add(item0);
lst.add(item1);
lst.add(item2);
lst.add(item3);
lst.add(item4);
lst.add(item5);
lst.add(item6);
lst.add(item7);
lst.add(item8);
lst.add(item9);
ArrayAdapter aradapter = new ArrayAdapter(
this.getApplicationContext(),
android.R.layout.simple_spinner_item, lst);
aradapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spcerticatetype.setAdapter(aradapter);
//選中某個選項後,添加事件
spcerticatetype.setOnItemSelectedListener(

new OnItemSelectedListener() {
public void onItemSelected(
AdapterView parent, View view, int position, long id) {
SpinnerItem item = (SpinnerItem) spcerticatetype.getSelectedItem();
tvcerticatetype.setText("您選擇的是:key="+item.Key+",value="+item.Value);
}
public void onNothingSelected(AdapterView parent) {
}

});


}
// 定義下拉框選項
public class SpinnerItem {
private String Key = "";
private String Value = "";

public SpinnerItem() {
Key = "";
Value = "";
}

public SpinnerItem(String _Key, String _Value) {
Key = _Key;
Value = _Value;
}

@Override
public String toString() {
// 為什麼要重寫toString()呢?因為適配器在顯示數據的時候,如果傳入適配器的對象不是字符串的情況下,直接就使用對象.toString()
// TODO Auto-generated method stub
return Value;
}

public String GetKey() {
return Key;
}

public String GetValue() {
return Value;
}
}

}

二、運行效果


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved