Android_Spinner
主布局文件:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 <Spinner 7 android:id="@+id/spinner" 8 android:layout_width="match_parent" 9 android:layout_height="wrap_content" 10 /> 11 12 </LinearLayout>
显示每个listView的布局文件:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="horizontal" > 6 <ImageView 7 android:id="@+id/image01" 8 android:layout_width="40dp" 9 android:layout_height="wrap_content" 10 /> 11 <TextView 12 android:id="@+id/textView01" 13 android:layout_width="wrap_content" 14 android:layout_height="wrap_content" 15 android:textSize="20sp" 16 android:text=""/> 17 18 </LinearLayout>
源代码:
1 import java.util.ArrayList; 2 import java.util.HashMap; 3 import java.util.List; 4 import java.util.Map; 5 6 import android.app.Activity; 7 import android.os.Bundle; 8 import android.view.Menu; 9 import android.view.MenuItem; 10 import android.widget.ArrayAdapter; 11 import android.widget.SimpleAdapter; 12 import android.widget.Spinner; 13 import android.widget.TextView; 14 /* 15 * Spinner 16 * 1--xml设置entris属性 17 * 配置strings下面的string-array 18 * 2--ArrayAdapter 19 * a、利用构造方法 ArrayAdapter(Context context, int resource, List<T> objects) 20 * context 上下文 21 * resource:布局文件的id,注意该布局文件有且只能有一个TextView标签 22 * objects:原始数据,List集合或数组都可以。 23 * b、利用构造方法 ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects) 24 * context 上下文 25 * resource:布局文件的id,注意该布局文件有且只能有一个TextView标签 26 * textViewResourceId:参数二布局文件中要显示数据的TextView的id 27 * objects:原始数据,List集合或数组都可以。 28 * c、ArrayAdapter<CharSequence> createFromResource(Context context, 29 int textArrayResId, int textViewResId) 30 * textArrayResId:字符串数组资源 31 * textViewResId:当某个选项被选中之后在Spinner框中显示的布局文件 32 * (注意该布局文件只能有一个TextView标签,不能有其他任何标签) 33 * 3、setOnItemSelectedListener 监听器 34 */ 35 /* 36 * Spinner 使用: 37 * 1.建立spinner列表文件 38 * 2.建立一个数组适配器 39 * 3.将spinner实例对象与数组适配器相关联 40 * 41 */ 42 43 public class MainActivity3 extends Activity { 44 45 private ArrayAdapter<String> adapter; 46 private Spinner spinner; 47 private List<Map<String,Object>> list; 48 49 @Override 50 protected void onCreate(Bundle savedInstanceState) { 51 super.onCreate(savedInstanceState); 52 setContentView(R.layout.spinner); 53 spinner = (Spinner) findViewById(R.id.spinner); 54 String[] s = {"科院1","科院2","科院3","科院4","科院5"};//数组适配器 55 adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, s);//注意该布局文件有且只能有一个TextView标签 56 //spinner.setAdapter(adapter); 57 58 list = new ArrayList<Map<String,Object>>(); 59 getData(); //获得list集合 60 String[] from = {"pic","name"};//map中key的集合 61 int[] to = {R.id.image01,R.id.textView01};//显示的布局 62 SimpleAdapter adapter1 = new SimpleAdapter(this,list,R.layout.simpleadapter_item, from, to);//简单适配器 63 spinner.setAdapter(adapter1); 64 65 } 66 private List getData(){ 67 int[] picId = {R.drawable.pic0, 68 R.drawable.pic1, 69 R.drawable.pic2, 70 R.drawable.pic3, 71 R.drawable.pic4, 72 R.drawable.pic5, 73 R.drawable.pic6, 74 R.drawable.pic7, 75 R.drawable.pic8, 76 R.drawable.pic9}; 77 for(int i = 0;i<10;i++){ 78 Map<String,Object> map = new HashMap<String,Object>(); 79 map.put("pic", picId[i]); 80 map.put("name", "天气"+(i+1)+":");//对一个list对象中添加map集合,map集合中又添加两个键值对 81 list.add(map); 82 } 83 return list; 84 } 85 }