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個預設實現的有...