1. 程式人生 > >Android-基本控制元件(Spanner 下拉列表)

Android-基本控制元件(Spanner 下拉列表)

1.回顧

   上篇 學會了 GridView 的使用,基本的SimapleAdapter 實現

2.這篇

    (1)使用 SimapleAdapter 實現 圖文下拉列表

    (2) 使用ArrayAdapter 實現  文字下拉列表

    (3) setOnItemSelectedListener (這裡和前面的就不一樣了)

3.實現

     在學習過程中 包括ListView ,GridView ,Spanner 都是一樣的步驟:準備資料來源,準備介面卡,設定介面卡

   3.1SimpleAdapter 實現

                                                     

      準備資料來源;例項介面卡 ,檢視設定介面卡;

List<Map<String,Object>> maps=new ArrayList<Map<String,Object>>();
		for(int i=0;i<21;i++){
			Map<String, Object> map=new HashMap<String, Object>();
			map.put("image",R.drawable.ic_launcher);
			map.put("name","yuan"+i);
			maps.add(map);
		}
		
		SimpleAdapter simpleAdapter=new SimpleAdapter(this,maps,R.layout.list_main,new String[]{"image","name"},new int[]{R.id.imageView1,R.id.textView2});
		spinner1.setAdapter(simpleAdapter);
		spinner1.setOnItemSelectedListener(new spanItemSelectListener());
   

   list_main 實現:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>

   3.2 ArrayAdapter

                                                 

       這個因為沒有圖片,所以使用ArrayAdapter 實現 ,更簡單;

		//設定資料來源
		List<String> list=new ArrayList<String>();
		list.add("焦作");
		list.add("溫縣");
		list.add("鄭州");
		list.add("河南理工");
		ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,list);
		//設定樣式
		arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		spinner1.setAdapter(arrayAdapter);
		spinner1.setOnItemSelectedListener(new spanItemSelectListener());

4.setOnItemSelectedListener 

   選擇監聽事件,依然通過 position 實現

/**
	 * Spinner 點選事件
	 * @author yuan
	 *
	 */
	class spanItemSelectListener implements OnItemSelectedListener{

		@Override
		public void onItemSelected(AdapterView<?> parent, View view,
				int position, long id) {
			// 通過position
			tv_spinner.setText(spinner1.getItemAtPosition(position).toString());
			
		}

		@Override
		public void onNothingSelected(AdapterView<?> parent) {
			// TODO Auto-generated method stub
			
		}
		
	}

 

5.總結

   目前為止 使用介面卡的 有 listview , gridview , spanner ;