Android開發教學
Android 開發環境配置
Android 架構
Android 應用組件
Android Hello World示例
Android 資源組織和訪問
Android Activity
Android Service
Android廣播接收器
Android內容提供者
Android碎片/片段
Android Intent過濾器
Android UI佈局
Android LinearLayout
Android RelativeLayout
Android TableLayout
Android AbsoluteLayout
Android FrameLayout
Android ListView
Android GridView
Android UI控件
Android TextView
Android EditText
Android AutoCompleteTextView
Android Button
Android ImageButton
Android CheckBox
Android ToggleButton
Android RadioButton
Android RadioGroup
Android事件處理
Android樣式和主題
Android樣式示例
Android主題示例
Android自定義組件
Android拖放
Android通知
Android基於位置服務
Android發送電子郵件
Android發送短信/SMS
Android撥打電話
發佈Android應用
ArrayAdapter
SimpleCursorAdapter
Android ProgressDialog
Android Spinner
使用活動代碼自定義Android組件
使用佈局文件自定義Android組件
Android自定義組件及屬性
Android Alertdialog(警告對話框)
Android Animation(動畫)實例
Android音頻捕獲(錄音)
Android音頻管理器實例
Android AutoCompleteTextView(自動完成)實例
Android最佳實踐
Android Bluetooth(藍牙)實例
Android Camera(攝像頭)
Android Clipboard(複製/剪貼板)
Android自定義字體
Android數據備份
Android Gestures/手勢
Android圖片效果
Android圖片切換
Android內部存儲
Android JetPlayer實例
Android JSON解析器
Android加載Spinner
Android本地化
Android登錄實例
Android MediaPlayer(多媒體播放)

Android ListView

Android ListView是一個組幾個項目,並顯示在垂直滾動列表。列表項會使用適配器自動插入到列表中,從內容源,如數組或數據庫。

一個適配器實際上UI組件和數據源之間的橋樑,填充數據到UI組件。適配器可以用來提供數據如:spinner,列表視圖,網格視圖等。

ListView和GridView 是 AdapterView 的子類,它們可以填充綁定到一個適配器,它從外部源檢索數據,並創建一個視圖表示每個數據項。

Android提供了幾個子適配器用於檢索不同類型的數據,建立一個 AdapterView(即 ListView 或 GridView )視圖是有用的。最常見的兩種適配器是 ArrayAdapter 和 SimpleCursorAdapter。我們將看看兩個適配器各自的例子。

ListView屬性

以下是具體的GridView中的重要屬性:

屬性

描述

android:id

這是唯一標識的佈局的ID。

android:divider

這是可拉伸或顏色列表項的繪製。

android:dividerHeight

這指定分頻器的高度。這可能是px, dp, sp, in 或 mm。

android:entries

指定引用數組的資源,將用於填充ListView。

android:footerDividersEnabled

當設置爲false,在ListView將不繪製每個頁腳視圖之前的分隔。默認值是true。

android:headerDividersEnabled

當設置爲false,在ListView將不繪製每個標題視圖之後的分隔。默認值是true。

ArrayAdapter

當數據源是一個數組,可以使用這個適配器。默認情況下,ArrayAdapter創建一個視圖,每個陣列項目的每個項目上調用toString()並放置在TextView 作爲內容。要顯示在ListView一個字符串數組,初始化一個新的ArrayAdapter使用構造函數來指定每個字符串的字符串數組的佈局:

ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.ListView, StringArray);

下面是此構造函數的參數:

  • 第一個參數 this  是應用程序上下文。在大多數的情況下使用this 。 

  • 第二個參數是定義在XML文件中的佈局,它是 TextView 數組中的每個字符串。

  • 最後一個參數是一個數組,字符串將被填充到文本視圖。

創建的數組適配器,然後簡單地調用ListView 對象 setAdapter() 方法,如下:

ListView listView = (ListView) findViewById(R.id.listview); listView.setAdapter(adapter);

在一個XML文件中,將定義列表視圖 res/layout 目錄下。在我們的例子中使用的是 activity_main.xml 文件。

示例

下面的例子將通過簡單的步驟顯示如何使用ListView,創建自己的Android應用程序。按照下面的步驟來創建一個Android應用程序項目:ListView :

Step

描述

1

使用Eclipse IDE創建Android應用程序,在包com.yiibai.helloworld下創建一個命名爲 ListView 的項目

2

修改res/layout/activity_main.xml文件的默認內容以包括ListView的內容及屬性

3

在res/values/strings.xml文件中定義所需的常量

4

創建一個文本文件res/layout/activity_listview.xml。該文件將設置顯示所有的列表項。所以可以使用此文件自定義其字體,填充,顏色等。

6

運行該應用程序啓動Android模擬器並驗證應用程序所運行的結果。

以下是主活動文件 src/com.yiibai.listview/MainActivity.java 的內容。這個文件可以包括每個的基本生命週期方法。

package com.yiibai.listview; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { // Array of strings... String[] countryArray = {"China", "India", "Pakistan", "USA", "UK"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, countryArray); ListView listView = (ListView) findViewById(R.id.country_list); listView.setAdapter(adapter); } }

以下是 res/layout/activity_main.xml 文件的內容:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".ListActivity" > <ListView android:id="@+id/country_list" android:layout_width="match_parent" android:layout_height="wrap_content" >

以下是文件  res/values/strings.xml 內容定義兩個常量:

<string name="app_name">HelloWorld <string name="action_settings">Settings

以下是 res/layout/activity_listview.xml 文件的內容:

讓我們嘗試運行 ListView 應用程序 。 Eclipse AVD上安裝應用程序並啓動它,如果設置和應用都沒有問題,它會顯示以下模擬器窗口:

Android

SimpleCursorAdapter

使用這個適配器,當數據源是一個數據庫遊標。SimpleCursorAdapter必須使用光標指定一個佈局中的每一行,哪些應該被插入到光標列布局的視圖。

例如,創建一個列表人的姓名和電話號碼,可以執行一個查詢,返回遊標包含每個人的姓名和號碼列。然後創建一個字符串數組,指定列遊標,在每個結果的佈局和一個整數數組指定每一列放在相應的視圖:

String[] fromColumns = {ContactsContract.Data.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}; int[] toViews = {R.id.display_name, R.id.phone_number};

SimpleCursorAdapter 實例化時,通過爲每個要使用的佈局,包含結果的遊標和這兩個數組:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.person_name_and_number, cursor, fromColumns, toViews, 0); ListView listView = getListView(); listView.setAdapter(adapter);

SimpleCursorAdapter 創建一個視圖的每一行遊標使用所提供的佈局插入每個fromColumns 項的相應 toViews 視圖。