Android 之 Spinner 键值对的绑定

来源:互联网 发布:淘宝客服培训计划 编辑:程序博客网 时间:2024/06/06 14:26

要重写它的.Tostring()函数,因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString()

 

  1. public class CItem { 
  2.     private int ID; 
  3.     private String Value = ""
  4.  
  5.     public CItem() { 
  6.         ID = 0
  7.         Value = ""
  8.     } 
  9.  
  10.     public CItem(int _ID, String _Value) { 
  11.         ID = _ID; 
  12.         Value = _Value; 
  13.     } 
  14.  
  15.     @Override 
  16.     public String toString() { 
  17.         // 为什么要重写toString()呢?因为适配器在显示数据的时候,如果传入适配器的对象不是字符串的情况下,直接就使用对象.toString() 
  18.         // TODO Auto-generated method stub 
  19.         return Value; 
  20.     } 
  21.  
  22.     public int GetID() { 
  23.         return ID; 
  24.     } 
  25.  
  26.     public String GetValue() { 
  27.         return Value; 
  28.     } 

 

在onCreate 里面代码如下:

 

  1. public void onCreate(Bundle savedInstanceState) { 
  2.     super.onCreate(savedInstanceState); 
  3.     setContentView(R.layout.main); 
  4.     mySpinner = (Spinner) findViewById(R.id.Spinner_mySpinner); 
  5.  
  6.     List<CItem> lst = new ArrayList<CItem>(); 
  7.     for (int i = 0; i < 10; i++) { 
  8.         /* 
  9.          * 首先新建一个list,赋值 
  10.          * ID为序号 
  11.          */ 
  12.         CItem item = new CItem(i, "value of " + i); 
  13.         lst.add(item); 
  14.     } 
  15.     ArrayAdapter<CItem> myaAdapter = new ArrayAdapter<CItem>(this, android.R.layout.simple_spinner_item, lst); 
  16.     mySpinner.setAdapter(myaAdapter); 
  17.  
  18.     mySpinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
  19.         public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
  20.             /* 
  21.              * ids是刚刚新建的list里面的ID 
  22.              */ 
  23.             int ids = ((CItem) mySpinner.getSelectedItem()).GetID(); 
  24.             System.out.println(ids); 
  25.             Toast.makeText(getApplicationContext(), String.valueOf(ids), Toast.LENGTH_LONG).show(); 
  26.         } 
  27.  
  28.         @Override 
  29.         public void onNothingSelected(AdapterView<?> arg0) { 
  30.             // TODO Auto-generated method stub 
  31.              
  32.         } 
  33.     }); 
  34.  

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:layo

main.xml:

 

 

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7.     <Spinner android:id="@+id/Spinner_mySpinner"  
  8.     android:layout_width="wrap_content"  
  9.     android:layout_height="wrap_content"></Spinner> 
  10.  
  11. </LinearLayout> 

 

运行结果如图:


0 0
原创粉丝点击