鍍金池/ 教程/ Android/ Android ListView
Android 應(yīng)用組件
使用布局文件自定義Android組件
Android通知
Android主題示例
Android JetPlayer實(shí)例
Android MediaPlayer(多媒體播放)
Android AbsoluteLayout
Android FrameLayout
Android Gestures/手勢(shì)
Android AutoCompleteTextView(自動(dòng)完成)實(shí)例
Android 資源組織和訪問(wèn)
Android ListView
Android GridView
Android數(shù)據(jù)備份
Android撥打電話(huà)
Android發(fā)送短信/SMS
Android ProgressDialog
SimpleCursorAdapter
Android發(fā)送電子郵件
Android Activity
Android TextView
Android事件處理
Android TableLayout
Android加載Spinner
Android內(nèi)容提供者
Android自定義字體
Android Service
Android CheckBox
Android Intent過(guò)濾器
Android LinearLayout
Android登錄實(shí)例
Android RadioButton
Android樣式和主題
Android自定義組件及屬性
Android UI控件
Android Animation(動(dòng)畫(huà))實(shí)例
Android Camera(攝像頭)
Android ToggleButton
Android Clipboard(復(fù)制/剪貼板)
Android音頻捕獲(錄音)
發(fā)布Android應(yīng)用
Android Alertdialog(警告對(duì)話(huà)框)
Android圖片效果
Android內(nèi)部存儲(chǔ)
Android基于位置服務(wù)
Android RadioGroup
Android AutoCompleteTextView
Android Bluetooth(藍(lán)牙)實(shí)例
Android RelativeLayout
Android最佳實(shí)踐
Android本地化
Android自定義組件
Android教程
Android 架構(gòu)
Android UI布局
Android Button
Android Hello World示例
Android音頻管理器實(shí)例
ArrayAdapter
Android拖放
Android碎片/片段
Android圖片切換
Android JSON解析器
Android開(kāi)發(fā)環(huán)境搭建
Android Spinner
Android樣式示例
使用活動(dòng)代碼自定義Android組件
Android ImageButton
Android EditText
Android廣播接收器

Android ListView

Android ListView是一個(gè)組幾個(gè)項(xiàng)目,并顯示在垂直滾動(dòng)列表。列表項(xiàng)會(huì)使用適配器自動(dòng)插入到列表中,內(nèi)容,如數(shù)組或數(shù)據(jù)庫(kù)。

一個(gè)適配器實(shí)際上UI組件和數(shù)據(jù)源之間的橋梁,填充數(shù)據(jù)到UI組件。適配器可以用來(lái)提供數(shù)據(jù)如:spinner,列表視圖,網(wǎng)格視圖等。

ListView和GridView 是 AdapterView 的子類(lèi),它們可以填充綁定到一個(gè)適配器,它從外部源檢索數(shù)據(jù),并創(chuàng)建一個(gè)視圖表示每個(gè)數(shù)據(jù)項(xiàng)。

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

ListView屬性

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

屬性 描述
android:id 這是唯一標(biāo)識(shí)的布局的ID。
android:divider 這是可拉伸或顏色列表項(xiàng)的繪制。
android:dividerHeight 這指定分頻器的高度。這可能是px, dp, sp, in 或 mm。
android:entries 指定引用數(shù)組的資源,將用于填充ListView。
android:footerDividersEnabled 當(dāng)設(shè)置為false,在ListView將不繪制每個(gè)頁(yè)腳視圖之前的分隔。默認(rèn)值是true。
android:headerDividersEnabled 當(dāng)設(shè)置為false,在ListView將不繪制每個(gè)標(biāo)題視圖之后的分隔。默認(rèn)值是true。

ArrayAdapter

當(dāng)數(shù)據(jù)源是一個(gè)數(shù)組,可以使用這個(gè)適配器。默認(rèn)情況下,ArrayAdapter創(chuàng)建一個(gè)視圖,每個(gè)陣列項(xiàng)目的每個(gè)項(xiàng)目上調(diào)用toString()并放置在TextView 作為內(nèi)容。要顯示在ListView一個(gè)字符串?dāng)?shù)組,初始化一個(gè)新的ArrayAdapter使用構(gòu)造函數(shù)來(lái)指定每個(gè)字符串的字符串?dāng)?shù)組的布局:

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

下面是此構(gòu)造函數(shù)的參數(shù):

  • 第一個(gè)參數(shù) this  是應(yīng)用程序上下文。在大多數(shù)的情況下使用this 。 

  • 第二個(gè)參數(shù)是定義在XML文件中的布局,它是 TextView 數(shù)組中的每個(gè)字符串。

  • 最后一個(gè)參數(shù)是一個(gè)數(shù)組,字符串將被填充到文本視圖。

創(chuàng)建的數(shù)組適配器,然后簡(jiǎn)單地調(diào)用ListView 對(duì)象 setAdapter() 方法,如下:

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

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

示例

下面的例子將通過(guò)簡(jiǎn)單的步驟顯示如何使用ListView,創(chuàng)建自己的Android應(yīng)用程序。按照下面的步驟來(lái)創(chuàng)建一個(gè)Android應(yīng)用程序項(xiàng)目:ListView 

Step 描述
1 使用Eclipse IDE創(chuàng)建Android應(yīng)用程序,在包c(diǎn)om.yiibai.helloworld下創(chuàng)建一個(gè)命名為 ListView 的項(xiàng)目
2 修改res/layout/activity_main.xml文件的默認(rèn)內(nèi)容以包括ListView的內(nèi)容及屬性
3 在res/values/strings.xml文件中定義所需的常量
4 創(chuàng)建一個(gè)文本文件res/layout/activity_listview.xml。該文件將設(shè)置顯示所有的列表項(xiàng)。所以可以使用此文件自定義其字體,填充,顏色等。
6 運(yùn)行該應(yīng)用程序啟動(dòng)Android模擬器并驗(yàn)證應(yīng)用程序所運(yùn)行的結(jié)果。

以下是主活動(dòng)文件 src/com.yiibai.listview/MainActivity.java 的內(nèi)容。這個(gè)文件可以包括每個(gè)的基本生命周期方法。

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 文件的內(nèi)容:

<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" >
   </ListView>
 
</LinearLayout>

以下是文件  res/values/strings.xml 內(nèi)容定義兩個(gè)常量:

<?xml version="1.0" encoding="utf-8"?>
<resources>

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

</resources>

以下是 res/layout/activity_listview.xml 文件的內(nèi)容:

<?xml version="1.0" encoding="utf-8"?>
<!--  Single List Item Design -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/label"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"