Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 適配器教程(一)

Android 適配器教程(一)

編輯:關於Android編程

最近在開發安卓的過程中發現ListView無疑是一個經常使用的組件,而提到ListView又不得不提一下適配器了,我打算用幾個實例,由淺入深的向大家仔細講解一下適配器的使用,雖然這算不上什麼高深的問題,我還是希望能給大家帶來一些收獲,我也是菜鳥一只,寫的不好的或者有錯的地方還請大家幫忙指出。下面進入正文:

首先讓我們來認識一下適配器:


什麼是適配器呢?顧名思義,就是把一些數據給弄得適當,適合以便於在View上顯示。適配器就像顯示器,把復雜的東西按人可以接受的方式來展現。也可以這樣來理解適配器,ListView通過適配器,理解我們要對ListView裡加入什麼內容,而我們在適配器裡@Override的方法,就是讓我們寫上我們要告訴這個ListView的一些基本內容。

可以說適配器就是數據和視圖之間的橋梁,學好適配器還是非常重要的。


讓我們先從各個方面理解適配器,然後看一些例子我想應該就可以徹底掌握它了!

適配器的工作原理:

適配器是怎麼處理得到的數據,並把它顯示出來的呢?其實很簡單,說白了適配器它也是一個類,在類裡面它實 現了父類的這幾個方法:

public int getCount() //得到數據的行數

public Object getItem(int position) //根據position得到某一行的記錄

public long getItemId(intposition) //的到某一條記錄的ID

還有最重要的:

publicView getView(intposition, View convertView, ViewGroup parent)

//相比於其它幾個方法這個方法是最重要的,它顯式的定義了適配器將要以什麼樣的方式去顯示我們所 填充的數據,在自定義的適配器裡面我們通常會給它寫個布局文件。

這些在最後的一兩個例子裡會仔細講解,我們從簡單的看起:首先看看常用的適配器


我們常用的適配器一共有三個,當然不包含自定義的適配器:就是ArrayAdapter,SimpleAdapter,SimpleCursorAdapter 這三個,他們都是繼承於BaseAdapter 。

下面我會逐一介紹,我們在具體應用中來繼續學習Adapter:

說道Adapter不得不說道ListView,或者說用到ListView不得不提到Adapter

在android開發中ListView是比較常用的組件,它以列表的形式展示具體內容,並且能夠根據數據的長度自適應顯示。

而列表的顯示需要三個元素:

1.ListVeiw 用來展示列表的View。

2.適配器 用來把數據映射到ListView上的中介。

3.數據 具體的將被映射的字符串,圖片,或者基本組件。

根據列表的適配器類型,列表分為三種,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter

其中以ArrayAdapter最為簡單,只能展示一行字。SimpleAdapter有最好的擴充性,可以自定義出各種效果。SimpleCursorAdapter可以認為是SimpleAdapter對數據庫的簡單結合,可以方面的把數據庫的內容以列表的形式展示出來

我們從最簡單的ListView開始(ArrayAdapter):

我打算把這幾種適配器的例子放在一個app裡面,然後上傳到我的資源,再分享鏈接給大家。所以我打算由MainActivity裡的Button來跳轉到各個例子,現在讓我們一步步的把這個Demo寫出來。


項目開始啦!


(1)首先,新建一個app ,名字叫做 AdapterDemo ,先在activity_main.xml裡添加一個button,一會跳轉的時候使用。


(2)然後新建一個類ArrayAdapterDemo繼承自Activity作為我們第一個小例子的Activity,@Override 我們的onCreate方法

新建一個xml文件arrayadapterdemo.xml作為我們的布局文件,其中包含一個文本域和一個ListView,代碼如下:

arrayadapterdemo.xml:



    
    

    
    



(3)然後回到ArrayAdapterDemo,定義一個Listview暫且叫做lv,並且lv=(ListView)findViewById(R.id.arrayadapterdemolistview); ,setContentView()為剛才的xml布局,然後為lv設置一個適配器,這裡使用的是安卓原生的ArrayAdapter(Context context, inttextViewResourceId, List objects)來裝配數據,要裝配這些數據就需要一個連接ListView視圖對象和數組數據的適配器 來兩者的適配工作。

ArrayAdapter的構造需要三個參數,依次為:this,布局文件(注意這裡的布局文件描述的是列表的每一行的布局, android.R.layout.simple_list_item_1是系統定義好的布局文件只顯示一行文字,數據源(一個List集合)。同時用setAdapter()完 成適配的最後工作。

一般寫一個getData()方法來作為最後一個參數,最終代碼如下:

package com.example.adapterdemo;

import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ArrayAdapterDemo extends Activity {
	private ListView lv;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.arrayadapterdemo);
		lv=(ListView)findViewById(R.id.arrayadapterdemolistview);		
		lv.setAdapter(new ArrayAdapter(this,
				android.R.layout.simple_expandable_list_item_1, getData()));
	}
	
	public List getData(){
		
		List data = new ArrayList();
        data.add("測試數據1");
        data.add("測試數據2");
        data.add("測試數據3");
        data.add("測試數據4");
         
        return data;
		
		
	}

}

再在AndroidManifest.xml中注冊Activity並在主界面中完成button監聽跳轉就可以了。

下面是實現結果:

源碼我會在最後一篇結束的時候發上來,我也是邊寫博客邊寫的代碼,我覺得這樣可能講的思路更清晰一些。

我也是學生,水平有限,還請多多指教!


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved