44import android .view .LayoutInflater ;
55import android .view .View ;
66import android .view .ViewGroup ;
7- import android .widget .Button ;
87import android .widget .TextView ;
98import com .morihacky .android .rxjava .R ;
109import com .morihacky .android .rxjava .rxbus .RxBus ;
@@ -15,7 +14,6 @@ class PaginationAutoAdapter
1514 extends RecyclerView .Adapter <RecyclerView .ViewHolder > {
1615
1716 private static final int ITEM_LOG = 0 ;
18- private static final int ITEM_BTN = 1 ;
1917
2018 private final List <String > _items = new ArrayList <>();
2119 private final RxBus _bus ;
@@ -24,76 +22,43 @@ class PaginationAutoAdapter
2422 _bus = bus ;
2523 }
2624
27- void addItems (List <String > items ) {
28- _items .addAll (items );
29- }
30-
3125 @ Override
32- public int getItemViewType (int position ) {
33- if (position == _items .size ()) {
34- return ITEM_BTN ;
35- }
36-
37- return ITEM_LOG ;
26+ public RecyclerView .ViewHolder onCreateViewHolder (ViewGroup parent , int viewType ) {
27+ return ItemLogViewHolder .create (parent );
3828 }
3929
4030 @ Override
41- public RecyclerView .ViewHolder onCreateViewHolder (ViewGroup parent , int viewType ) {
42- switch (viewType ) {
43- case ITEM_BTN :
44- return ItemBtnViewHolder .create (parent );
45- default :
46- return ItemLogViewHolder .create (parent );
47- }
31+ public void onBindViewHolder (RecyclerView .ViewHolder holder , int position ) {
32+ ((ItemLogViewHolder ) holder ).bindContent (_items .get (position ));
4833 }
4934
5035 @ Override
51- public void onBindViewHolder (RecyclerView .ViewHolder holder , int position ) {
52- switch (getItemViewType (position )) {
53- case ITEM_LOG :
54- ((ItemLogViewHolder ) holder ).bindContent (_items .get (position ));
55- return ;
56- case ITEM_BTN :
57- ((ItemBtnViewHolder ) holder ).bindContent (_bus );
58- }
36+ public int getItemViewType (int position ) {
37+ return ITEM_LOG ;
5938 }
6039
6140 @ Override
6241 public int getItemCount () {
63- return _items .size () + 1 ; // add 1 for paging button
42+ return _items .size ();
43+ }
44+
45+ void addItems (List <String > items ) {
46+ _items .addAll (items );
6447 }
6548
66- private static class ItemLogViewHolder extends RecyclerView .ViewHolder {
49+ private static class ItemLogViewHolder
50+ extends RecyclerView .ViewHolder {
6751 ItemLogViewHolder (View itemView ) {
6852 super (itemView );
6953 }
7054
7155 static ItemLogViewHolder create (ViewGroup parent ) {
7256 return new ItemLogViewHolder (LayoutInflater .from (parent .getContext ())
73- .inflate (R .layout .item_log , parent , false ));
57+ .inflate (R .layout .item_log , parent , false ));
7458 }
7559
7660 void bindContent (String content ) {
7761 ((TextView ) itemView ).setText (content );
7862 }
7963 }
80-
81- static class ItemBtnViewHolder extends RecyclerView .ViewHolder {
82- ItemBtnViewHolder (View itemView ) {
83- super (itemView );
84- }
85-
86- static ItemBtnViewHolder create (ViewGroup parent ) {
87- return new ItemBtnViewHolder (LayoutInflater .from (parent .getContext ())
88- .inflate (R .layout .item_btn , parent , false ));
89- }
90-
91- void bindContent (RxBus bus ) {
92- ((Button ) itemView ).setText (R .string .btn_demo_pagination_more );
93- itemView .setOnClickListener (v -> bus .send (new ItemBtnViewHolder .PageEvent ()));
94- }
95-
96- static class PageEvent {
97- }
98- }
9964}
0 commit comments