對於 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...