D.K.的Android旅程--ArrayAdapter和ListActivity實現ListView
使用介面卡ArrayAdapter實現ListView和如何繼承ListActivity實現ListView。
ArrayAdapter是簡單易用的Adapter,通常用於將陣列或List集合的多個值包裝成多個列表項。請看如下程式碼:
XML佈局檔案:
<ListView
android:id="@+id/list1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#f00"
android:dividerHeight="2px"
android:headerDividersEnabled="false"
/>
Java:
public class ArrayAdapterTest extends Activity
{
@Override
protectedvoid onCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView list1 = (ListView)findViewById(R.id.list1
// 定義一個數組
String[] arr = { "呵呵", "哈哈", "哦哦" };
// 將陣列包裝ArrayAdapter
ArrayAdapter<String> adapter= new ArrayAdapter<String>
(this, R.layout.array_item,arr);
// 為ListView設定Adapter
list1.setAdapter(adapter);
}
}
其中Java在例項化ArrayAdapter時使用了另一個XML佈局檔案,如下:
<?xml version="1.0"encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24dp"
android:padding="10px"
android:shadowColor="#f0f"
android:shadowDx="4"
android:shadowDy="4"
android:shadowRadius="2"/>
使用ListActivity實現ListView的主要情況是當前視窗僅僅只需要實現一個列表,這樣實現起來方便快捷,以下程式也是使用ArrayAdapter實現,只是少了佈局檔案。
Java:
public class ListActivityTest extends ListActivity
{
@Override
publicvoid onCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
// 因為繼承了ListActivity來實現ListView,所以無需使用佈局檔案
String[] arr = { "呵呵", "哈哈", "哦哦" };
// 建立ArrayAdapter物件
ArrayAdapter<String> adapter= new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice,arr);
// 設定該視窗顯示列表
setListAdapter(adapter);
}
}