超簡便的ListView中Adapter的寫法

2022-09-07 09:24:10 字數 2634 閱讀 2952

對於 listview 的使用,他有兩個重點的部分,乙個是下拉重新整理和載入更多,這個今天我們不講,另外乙個是 baseadapter 的使用,這個是今天的主角,baseadapter 中又有 viewholder 模式來實現快取檢視

繼承baseadapter類,實現以下幾個方法

getcount() ->int 返回的是 list的個數

getview(int, view, viewgroup)->view 返回顯示的檢視

getitemid(int position) ->long返回position位置的 id

getitem(int position)->object 返回position位置的 item

現在我們在這個基礎上,繼承 baseadapter 實現幾個方法.

mbaseadapter.class

public abstract class mbaseadapter  extends baseadapter

public mbaseadapter(layoutinflater inflater, list<?> list)

@override

public int getcount()

@override

public object getitem(int position)

@override

public long getitemid(int position)

@override

public view getview(int position, view convertview, viewgroup parent)

/*** 與baseadapter 中的getview() 一樣

** @param position

* @param convertview

* @param parent

* @return

*/public abstract view getview33(int position, view convertview,

viewgroup parent);

}為了實現 viewhodler 快取我寫了這個工具類

viewholderutils.class

public class viewholderutils

return viewholder;

}/**

* viewhodler  儲存 view的子 view 的索引

* @author zzz40500**/

public class viewholder

public t get(int id)

return (t) childview;

}/**

* 得到 view 下 id 為 id 的textview 這裡沒有做型別的判斷所以你要保證 id 為 id 的控制項確實為 textview型別

* @param id

* @return

*/public textview gettextview(int id)

/*** 直接設定文字

* @param id

* @param text

*/public void settext(int id,string text)

public imageview getimageview(int id) }}

現在結合上面兩個類,我們可是實現了更簡單的 adapter 寫法

autoadapter.class

public abstract class autoadapter extends mbaseadapter

@override

public view getview33(int position, view convertview, viewgroup parent)

getview33(position, convertview, vh.get(convertview));

return convertview;

}/**

* 通過暴露這個方法,通過操作vh實現將資料的繫結在檢視上

* @param position

* @param v

* @param vh

*/public abstract void getview33(int position, view v, viewholderutils.viewholder vh);

}重點來了:

我們現在有乙個介面卡要寫,怎麼寫呢,只要繼承autoadapter,

我們只要實現了兩個方法:getview33和它自身的構造方法,他就可以快速實現了介面卡的編寫,並且這個介面卡是 viewhodler 的形式.

例子:public class demoadapter extends autoadapter

/*** 將資料繫結在檢視上

*/@override

public void getview33(int position, view v, viewholder vh)

}在 activity 中的使用:

baseadapter adapter=new demoadapter(this, datea);      

listview.setadapter(adapter);

來自為知筆記(wiz)

VB中listview 的FindItem用法

finditem 方法 listview 控制項 查詢並返回 listview 控制項中 listitem 物件的引用。語法object.finditem string,value,index,match finditem 方法的語法包含下面部分 部分 描述 object 必需的。物件表示式,其值是...

ListView 中Adapter的優化

listview的adapter的作用如下圖所示 adapter的作用就是listview介面與資料之間的橋梁,當列表裡的每一項顯示到頁面時,都會呼叫adapter的getview方法返回乙個view。想過沒有?在我們的列表有1000000項時會是什麼樣的?是不是會占用極大的系統資源?先看看下面的 ...

獲得listview中的edittext文字

這週寫應用的時候遇到乙個問題,就是在listview中的edittext可以輸入,但不能獲得到edittext中輸入的文字。解決的方法是給edittext新增textwatcher監聽事件,並在其中讓edittext在輸入時通過呼叫dispatchkeyevent 方法一直獲得焦點,最後在seton...