首页 > 代码库 > 列表选择Spinner

列表选择Spinner

1.只用XML配置来显示列表

在res\values中添加一个arrays.xml

 1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3  4     <string-array name="books"> 5         <item>口里奇才</item> 6         <item>凸显</item> 7         <item>下雨目前</item> 8         <item>越来越一直在于</item> 9     </string-array>10 11 </resources>

在主页面的xml中添加Spinner

1     <Spinner2         android:id="@+id/spi3"3         android:layout_width="match_parent"4         android:layout_height="wrap_content"5         android:entries="@array/books" >6     </Spinner>

效果

 

2.用后台动态添加

布局:

1     <Spinner2         android:id="@+id/spi"3         android:layout_width="match_parent"4         android:layout_height="wrap_content" >5     </Spinner>

添加数据类

 1 package com.example.myadapter; 2  3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 import java.util.Map; 7  8 import com.example.androidspinner.R; 9 10 public class Myadapter {11 12     public Myadapter() {13         // TODO Auto-generated constructor stub14     }15     16     public static List<String> getData(){17         List<String> list=new ArrayList<String>();18         list.add("北京");19         list.add("武汉");20         list.add("广州");21         return list;22     }23     24 }

主程序中添加数据绑定

 1 package com.example.androidspinner; 2  3 import java.util.List; 4 import java.util.Map; 5  6 import com.example.myadapter.Myadapter; 7  8 import android.os.Bundle; 9 import android.app.Activity;10 import android.view.Menu;11 import android.view.View;12 import android.widget.AdapterView;13 import android.widget.AdapterView.OnItemSelectedListener;14 import android.widget.ArrayAdapter;15 import android.widget.SimpleAdapter;16 import android.widget.Spinner;17 18 public class AndroidSpinnerActivity extends Activity {19     private Spinner spi;20 21     @Override22     protected void onCreate(Bundle savedInstanceState) {23         super.onCreate(savedInstanceState);24         setContentView(R.layout.activity_android_spinner);25         spi = (Spinner) this.findViewById(R.id.spi);26         List<String> list = Myadapter.getData();27         ArrayAdapter<String> adapter = new ArrayAdapter<String>(28                 AndroidSpinnerActivity.this,29                 android.R.layout.simple_spinner_item, list);30         spi.setAdapter(adapter);31 32                 }33 34           
40 }41 42 @Override43 public boolean onCreateOptionsMenu(Menu menu) {44 // Inflate the menu; this adds items to the action bar if it is present.45 getMenuInflater().inflate(R.menu.activity_android_spinner, menu);46 return true;47 }48 49 }

3.选项加图标

布局:

1     <Spinner2         android:id="@+id/spi2"3         android:layout_width="match_parent"4         android:layout_height="wrap_content" >5     </Spinner>

添加数据类

 1 package com.example.myadapter; 2  3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 import java.util.Map; 7  8 import com.example.androidspinner.R; 9 10 public class Myadapter {11 12     public Myadapter() {13         // TODO Auto-generated constructor stub14     }15     16         17     public static List<Map<String, Object>> getMapData(){18         List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();19         Map<String, Object> map1=new HashMap<String, Object>();20         map1.put("logo", R.drawable.add);21         map1.put("appname", "北京");22         list.add(map1);23         24         Map<String, Object> map2=new HashMap<String, Object>();25         map2.put("logo", R.drawable.application);26         map2.put("appname", "武汉");27         list.add(map2);28         return list;29         30     }31 32 }

主程序中添加数据绑定

 1 package com.example.androidspinner; 2  3 import java.util.List; 4 import java.util.Map; 5  6 import com.example.myadapter.Myadapter; 7  8 import android.os.Bundle; 9 import android.app.Activity;10 import android.view.Menu;11 import android.view.View;12 import android.widget.AdapterView;13 import android.widget.AdapterView.OnItemSelectedListener;14 import android.widget.ArrayAdapter;15 import android.widget.SimpleAdapter;16 import android.widget.Spinner;17 18 public class AndroidSpinnerActivity extends Activity {19         private Spinner spi2;20 21     @Override22     protected void onCreate(Bundle savedInstanceState) {23         super.onCreate(savedInstanceState);24         setContentView(R.layout.activity_android_spinner);25 26         spi2 = (Spinner) this.findViewById(R.id.spi2);27 28         List<Map<String, Object>> listMap = Myadapter.getMapData();29 30         SimpleAdapter simpleAdapter = new SimpleAdapter(31                 AndroidSpinnerActivity.this, listMap, R.layout.items,32                 new String[] { "logo", "appname" }, new int[] { R.id.imgview,33                         R.id.labview });34         spi2.setAdapter(simpleAdapter);35         36         spi2.setOnItemSelectedListener(new OnItemSelectedListener() {37 38             @Override39             public void onItemSelected(AdapterView<?> parent, View arg1,40                     int position, long id) {41                 String appname=((Map<String,Object>)spi2.getItemAtPosition(position)).get("appname").toString();42                 setTitle(appname);43             }44 45             @Override46             public void onNothingSelected(AdapterView<?> arg0) {47                 // TODO Auto-generated method stub48                 49             }50         });51     }52 53     @Override54     public boolean onCreateOptionsMenu(Menu menu) {55         // Inflate the menu; this adds items to the action bar if it is present.56         getMenuInflater().inflate(R.menu.activity_android_spinner, menu);57         return true;58     }59 60 }

列表选择Spinner