Tears_fg

导航

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 }

 

posted on 2016-06-13 11:04  Tears_fg  阅读(148)  评论(0编辑  收藏  举报