Android-基本控制元件(Spanner 下拉列表)
阿新 • • 發佈:2019-02-18
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 ;