1. 程式人生 > >D.K.的Android旅程--ArrayAdapter和ListActivity實現ListView

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);

       }

}