可復用的自定義Adapter

2022-09-08 10:39:13 字數 2197 閱讀 8304

public

abstract

class myadapterextends

baseadapter

public myadapter(arraylis***ata, int

mlayoutres)

@override

public

intgetcount()

@override

public t getitem(int

position)

@override

public

long getitemid(int

position)

@override

public view getview(int

position, view convertview, viewgroup parent)

public

abstract

void

bindview(viewholder holder, t obj);

//新增乙個元素

public

void

add(t data)

mdata.add(data);

notifydatasetchanged();

}//往特定位置,新增乙個元素

public

void add(int

position, t data)

mdata.add(position, data);

notifydatasetchanged();

}public

void

remove(t data)

notifydatasetchanged();

}public

void remove(int

position)

notifydatasetchanged();

}public

void

clear()

notifydatasetchanged();

}public

static

class

viewholder

//繫結viewholder與item

public

static

viewholder bind(context context, view convertview, viewgroup parent,

int layoutres, int

position)

else

holder.position =position;

return

holder;

}@suppresswarnings("unchecked")

public

extends view> t getview(int

id)

return

t; }

/*** 獲取當前條目

*/public

view getitemview()

/*** 獲取條目位置

*/public

intgetitemposition()

/*** 設定文字

*/public viewholder settext(int

id, charsequence text)

return

this

; }

/*** 設定

*/public viewholder setimageresource(int id, int

drawableres)

else

return

this

; }

/*** 設定點選監聽

*/public viewholder setonclicklistener(int

id, view.onclicklistener listener)

/*** 設定可見

*/public viewholder setvisibility(int id, int

visible)

/*** 設定標籤

*/public viewholder settag(int

id, object obj)

//其他方法可自行擴充套件

}}

自定義Adapter中對ListView的優化

現在已經寫好乙個簡單的listview,它是這個樣子的 自定義adapter要繼承baseadapter,並且實現4個方法,其中getview是返回乙個檢視,對於listview的優化就要針對這個方法來優化 首先我們在getview方法中列印position和convertview,來觀察他們的值 ...

自定義可拖拽view

我們知道view的繪製有三個重要的過程分別是measure,layout,draw.measure負責測量view的尺寸,layout負責定位view的位置,draw負責把view繪製到上。我們這就是通過layout重新定位view。public class custommoveview exten...

可擴充套件的自定義table元件

vue class table with label class table th class th title v for item,index in viewdata key index width item.width li ul div class table tbody class bod...