ListView種類
- 透過ArrayAdapter建立的只有一維資訊的ListView
- 透過SimpleAdapter建立的有二維資訊的ListView
- 透過SimpleCursorAdapter的使用
- 直接繼承BaseAdapter來建立自己的Adapter完成的全自訂ListView
透過橋接器(Adapter)建立的版面(Layouts)
當你的版面內容是會變動的或是無法預先偵測數量的,就可以使用AdapterView
版面的子類別來執行的時候放置版面裡面的view元件。每一個AdapterView
的子類別都會透過一個Adapter
來綁定資料到版面裡。這個Adapter
就像是要顯示的資料和AdapterView
的中間角色;Adapter
用來取得每一筆資料(例如:字串陣列或圖形陣列)後,然後轉換成可以在AdapterView
上顯示的一個一個view元件。
常見需要透過adapter來使用的版面:
List View

顯示單行可以捲動的清單。
填充資料到Adapter
你可以透過把一個AdapterView
像是ListView
或GridView
藉由綁定一個AdapterView
實體到一個Adapter
上,透過獲取來源資料自動建立出相同數量的view元件到AdapterView
上。
Android內建有數種方便的Adapter
用來將不同類型的資料建立成view元件群並轉換到AdapterView
上顯示。
最常見的Adapter
如下:
ArrayAdapter
當你的資料是陣列時會使用這種Adapter。預設情況下,ArrayAdapter
透過呼叫toString()
方法,取出每個陣列內的項目後建立一個一個TextView
並將字串設定進去。
ListView
清單的方式顯示,初始化一個新的ArrayAdapter
,透過建構式設定該ListView
版面,接著把ArrayAdapter
指定給ListView
:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myStringArray);建構式裡需要的參數為:
- 你的程式
Context
- 顯示每一筆資料的
TextView
的樣式 - 字串陣列
接著只要透過呼叫
ListView
物件的setAdapter()
:
ListView listView = (ListView) findViewById(R.id.listview); listView.setAdapter(adapter);
處理點擊事件
你可以透過實現AdapterView
類別的OnItemClickListener
介面來回應點擊事件,例如:
// Create a message handling object as an anonymous class. private OnItemClickListener mMessageClickedHandler = new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { // Do something in response to the click } }; listView.setOnItemClickListener(mMessageClickedHandler);