Android ApiDemos示例解析(168):Views->Lists->1. Array

關於List,前面已有很多介紹,例如Android簡明開發教程十:數據綁定Data Binding 。ListActivity 可以通過綁定數據源(如數組或Cursor)來顯示一個列表,並可以響應用戶選擇某個列表項。

ListActivity中顯示的是ListView,ListView和Gallery ,Spinner有一個共同點:它們都是AdapterView的子類。AdapterView的顯示可以通過數據綁定來實現,數據源可以是數組或是數據庫記錄,數據源和AdapterView是通過Adapter作為橋梁。通過Adapter,AdatperView可以顯示數據源或處理用戶選取事件,如:選擇列表中某項。

 

ListActivity 缺省Layout為一個全屏顯示的單個列表,但Android允許使用setContentView() 為ListActivity使用自定義的Layout。此時Layout中必須含有一個id 為@android:id/list 的ListView。可以參見Expandable Lists 的用法:Android ApiDemos示例解析(112):Views->Expandable Lists->1. Custom Adapter。

綁定數據源,ListActivity 的ListView 通過 setListAdapter 於實現瞭ListAdapter 的對象進行綁定, Android提供瞭兩個標準List的Adapter,一個為SimpleAdapter 用於綁定靜態數據(Map),可以參見Android ApiDemos示例解析(2): SimpleAdapter,ListActivity,PackageManager ,另外一個為SimpleCursorAdapter 用於綁定Cursor類型數據源,參見Android ApiDemos示例解析(120):Views->Gallery->2. People

對於數組類型數據,還可以使用ArrayAdapter,ArrayAdapter 為一模板類,它缺省使用的顯示資源為一TextView ,也可以使用自定義的資源ID創建一個ArrayAdapter.

本例使用string 類型ArrayAdapter ,顯示一個數組。使用一個TextView(資源id為android.R.layout.simple_list_item_1)來顯示一個列表項。

[java] 
setListAdapter(new ArrayAdapter<String>(this, 
android.R.layout.simple_list_item_1, mStrings)); 

setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, mStrings));

 


 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。