android:ListView 的簡單用法

yufan發表於2016-01-08

首 先新 建 一個 ListViewTest 項 目, 並 讓 ADT 自 動幫 我 們創 建 好 活動 。 然後 修 改

activity_main.xml 中的程式碼,如下所示:

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" >

 

<ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" >

</ListView>

 

 

</LinearLayout>

在佈局中加入 ListView 控制元件還算非常簡單,先為 ListView 指定了一個 id,然後將寬度 和高度都設定為 match_parent,這樣 ListView 也就佔據了整個佈局的空間。

接下來修改 MainActivity 中的程式碼,如下所示:

 

 

 

public class MainActivity extends Activity {

 

 

private String[] data = { "Apple", "Banana", "Orange", "Watermelon", "Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango" };

 

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayAdapter<String> adapter = new ArrayAdapter<String>(

MainActivity.this, android.R.layout.simple_list_item_1, data); ListView listView = (ListView) findViewById(R.id.list_view);

listView.setAdapter(adapter);

}

 

 

}

既然 ListView 是用於展示大量資料的,那我們就應該先將資料提供好。這些資料可以是 從網上下載的,也可以是從資料庫中讀取的,應該視具體的應用程式場景來決定。這裡我們 就簡單使用了一個 data 陣列來測試,裡面包含了很多水果的名稱。

不過,陣列中的資料是無法直接傳遞給 ListView 的,我們還需要藉助介面卡來完成。 Android 中提供了很多介面卡的實現類,其中我認為最好用的就是 ArrayAdapter。它可以通 過泛型來指定要適配的資料型別,然後在建構函式中把要適配的資料傳入即可。ArrayAdapter 有多個建構函式的過載,你應該根據實際情況選擇最合適的一種。這裡由於我們提供的資料 都是字串,因此將 ArrayAdapter 的泛型指定為 String,然後在 ArrayAdapter 的建構函式中 依次傳入當前上下文、ListView 子項佈局的 id ,以及要適配的資料。注意我們使用了 android.R.layout.simple_list_item_1 作為 ListView 子項佈局的 id,這是一個 Android 內建的布 局檔案,裡面只有一個 TextView,可用於簡單地顯示一段文字。這樣介面卡物件就構建好了。

最後,還需要呼叫 ListView 的 setAdapter()方法,將構建好的介面卡物件傳遞進去,這 樣 ListView 和資料之間的關聯就建立完成了。

現在執行一下程式,效果如圖 3.29 所示。

 

圖   3.29

 

可以通過滾動的方式來檢視螢幕外的資料。

相關文章