實現RecyclerView 的通用Adapter

2021-07-14 01:09:08 字數 2932 閱讀 7193

recyclerview雖然很好,但是卻需要為每乙個

recyclerview

實現乙個

adapter

,而沒有像

baseadap

那樣的通用

adapter

,下面就來實現乙個通用的

adapter:

①首先實現乙個baseviewholder

public class 

baseviewholder 

extends 

recyclerview.viewholder 

implements 

view.onclicklistener 

public 

textview 

gettextview

(int 

viewid) 

public 

checkbox 

getcheckbox

(int 

viewid) 

public 

button 

getbutton

(int 

viewid) 

public 

imageview 

getimageview

(int 

viewid) 

public 

view 

getview

(int 

viewid) 

protected 

<

t extends 

view> 

t retrieveview

(int 

viewid) 

return (t

) view;}

@override

public void 

onclick

(view v) }}

②實現baseadapter

public abstract class 

baseadapterh extends  

baseviewholder> 

extends 

recyclerview.adapter

public void 

setonitemclicklistener

(onitemclicklistener listener) 

public 

baseadapter(context context

, int 

layoutresid) 

public 

baseadapter(context context

, int 

layoutresid

, list<

t> datas) 

@override

public 

baseviewholder 

oncreateviewholder

(viewgroup viewgroup

,  int 

viewtype) 

@override

public void 

onbindviewholder

(baseviewholder viewhoder

,  int 

position) 

@override

public int 

getitemcount

() public 

t getitem

(int 

position) 

public void 

clear()}

public  void 

removeitem(t 

t)public 

list<

t> 

getdatas

()public void 

adddata

(list<

t> datas)

public void 

adddata

(int 

position

,list<

t> list)}}

public void 

refreshdata

(list<

t> list)}}

public void 

loadmoredata

(list<

t> list)}}

protected abstract void 

convert(h 

viewhoder

, t 

item);}

③實現乙個******adapter

,類似於

listview

的baseadapter

public abstract class 

******adapter<

t> 

extends 

baseadapterbaseviewholder> 

public 

******adapter(context context

, int 

layoutresid

, list<

t> datas) }

④使用public class 

addressadapter 

extends 

******adapter

@override

protected void 

convert

(baseviewholder viewhoder

, final 

address item) 

else}})

;}}public inte***ce 

addresslisneter}

只需實現convert

方法即可。

RecyclerView瀑布流的實現

recyclerview瀑布流的實現 其實跟普通recyclerview使用一致,我們一般有兩種方式改變以形成瀑布流高度不一的參差感 第一種方式 在繫結檢視資料時,獲取控制項高度 一般都以控制項為主 動態改變高度 override public void onbindviewholder nonnu...

RecyclerView實現item區域性重新整理

一 view的資料繫結方法 recyclerview.adapter裡有這麼兩個方法 public void onbindviewholder nonnull viewholder holder,int position public void onbindviewholder nonnull vh...

RecyclerView多條目實現

這裡做兩個條目的例子public class 類名 extends recyclerview.adapterclass 類名 extends recyclerview.viewholder class 類名 extends recyclerview.viewholder 此處省略n 1個預設實現的有...