Skip to content

Commit 3568146

Browse files
committed
doc(app):添加实例代码
1 parent 4b0787a commit 3568146

7 files changed

Lines changed: 152 additions & 35 deletions

File tree

app/src/main/java/cn/junhua/android/commonadapter/activity/BasisActivity.java

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,23 @@
22

33
import android.graphics.Rect;
44
import android.os.Bundle;
5+
import android.os.Handler;
56
import android.support.annotation.Nullable;
67
import android.support.v7.app.AppCompatActivity;
78
import android.support.v7.widget.LinearLayoutManager;
89
import android.support.v7.widget.RecyclerView;
910
import android.view.View;
11+
import android.widget.Toast;
1012

1113
import java.util.ArrayList;
1214
import java.util.List;
1315

1416
import cn.junhua.android.adapter.MultiTypeAdapter;
15-
import cn.junhua.android.adapter.ItemViewBinder;
16-
import cn.junhua.android.adapter.imp.TypeMatcher;
1717
import cn.junhua.android.commonadapter.R;
18+
import cn.junhua.android.commonadapter.bean.hint.HintBean;
1819
import cn.junhua.android.commonadapter.bean.basis.BasisImgBean;
1920
import cn.junhua.android.commonadapter.bean.basis.BasisTextBean;
21+
import cn.junhua.android.commonadapter.binder.hint.HintItemViewBinder;
2022
import cn.junhua.android.commonadapter.binder.basis.ImgBinderItemView;
2123
import cn.junhua.android.commonadapter.binder.basis.TextLeftBinderItemView;
2224
import cn.junhua.android.commonadapter.binder.basis.TextRightBinderItemView;
@@ -46,6 +48,7 @@ public void getItemOffsets(Rect outRect, View view, RecyclerView parent, Recycle
4648
//初始化MultiTypeAdapter
4749
multiTypeAdapter = new MultiTypeAdapter();
4850
//注册ViewBinder
51+
multiTypeAdapter.register(HintBean.class, new HintItemViewBinder());//一对一
4952
multiTypeAdapter.register(BasisImgBean.class, new ImgBinderItemView());//一对一
5053
multiTypeAdapter.register(BasisTextBean.class)//一对多
5154
.mapping(new TextLeftBinderItemView(), new TextRightBinderItemView())
@@ -54,16 +57,27 @@ public void getItemOffsets(Rect outRect, View view, RecyclerView parent, Recycle
5457
return TextRightBinderItemView.class;
5558
});
5659

57-
multiTypeAdapter.setList(getDataList());
60+
genDataList(true);
61+
multiTypeAdapter.setList(dataList);
5862
recycler_view.setAdapter(multiTypeAdapter);
63+
multiTypeAdapter.notifyDataSetChanged();
64+
65+
66+
new Handler().postDelayed(() -> {
67+
genDataList(false);
68+
multiTypeAdapter.notifyDataSetChanged();
69+
Toast.makeText(BasisActivity.this, "追加数据", Toast.LENGTH_SHORT).show();
70+
}, 5000);
5971
}
6072

61-
public List<Object> getDataList() {
73+
public void genDataList(boolean isFirst) {
74+
if (!isFirst) {
75+
dataList.add(new HintBean());
76+
}
6277
for (int i = 0; i < 20; i++) {
6378
dataList.add(new BasisImgBean());
6479
dataList.add(new BasisTextBean(0));
6580
dataList.add(new BasisTextBean(1));
6681
}
67-
return dataList;
6882
}
6983
}
Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11
package cn.junhua.android.commonadapter.activity;
22

33
import android.os.Bundle;
4+
import android.os.Handler;
45
import android.support.annotation.Nullable;
56
import android.support.v7.app.AppCompatActivity;
67
import android.support.v7.widget.DividerItemDecoration;
78
import android.support.v7.widget.LinearLayoutManager;
89
import android.support.v7.widget.RecyclerView;
10+
import android.widget.Toast;
911

1012
import java.util.ArrayList;
1113
import java.util.List;
1214

1315
import cn.junhua.android.adapter.MultiTypeAdapter;
1416
import cn.junhua.android.commonadapter.R;
17+
import cn.junhua.android.commonadapter.bean.hint.HintBean;
1518
import cn.junhua.android.commonadapter.bean.taobao.BannerBean;
1619
import cn.junhua.android.commonadapter.bean.taobao.BigTitleBean;
1720
import cn.junhua.android.commonadapter.bean.taobao.GoodsShowBean;
1821
import cn.junhua.android.commonadapter.bean.taobao.LikeBean;
1922
import cn.junhua.android.commonadapter.bean.taobao.MenuBean;
23+
import cn.junhua.android.commonadapter.binder.hint.HintItemViewBinder;
2024
import cn.junhua.android.commonadapter.binder.defaults.DefaultItemViewBinder;
2125
import cn.junhua.android.commonadapter.binder.taobao.BigTitleItemViewHinder;
2226
import cn.junhua.android.commonadapter.binder.taobao.GoodsShowItemViewHinder;
@@ -29,25 +33,12 @@
2933
public class DefaultViewBinderActivity extends AppCompatActivity {
3034
private RecyclerView recycler_view;
3135
private MultiTypeAdapter multiTypeAdapter;
32-
private List<Object> dataList;
36+
private List<Object> dataList = new ArrayList<>();
3337

3438
@Override
3539
protected void onCreate(@Nullable Bundle savedInstanceState) {
3640
super.onCreate(savedInstanceState);
3741
setContentView(R.layout.activity_recycler_view);
38-
dataList = new ArrayList<>();
39-
dataList.add(new BannerBean());
40-
dataList.add(new MenuBean());
41-
42-
for (int i = 0; i < 2; i++) {
43-
dataList.add(new GoodsShowBean());
44-
}
45-
46-
dataList.add(new BigTitleBean("猜你喜欢"));
47-
for (int i = 0; i < 10; i++) {
48-
dataList.add(new LikeBean());
49-
}
50-
5142
recycler_view = findViewById(R.id.recycler_view);
5243

5344
//设置布局管理器
@@ -58,12 +49,39 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
5849
//初始化MultiTypeAdapter
5950
multiTypeAdapter = new MultiTypeAdapter();
6051
//注册ViewBinder
52+
multiTypeAdapter.register(HintBean.class, new HintItemViewBinder());//一对一
6153
multiTypeAdapter.register(MenuBean.class, new MenuItemViewHinder());
6254
multiTypeAdapter.register(GoodsShowBean.class, new GoodsShowItemViewHinder());
6355
multiTypeAdapter.register(BigTitleBean.class, new BigTitleItemViewHinder());
6456
multiTypeAdapter.setDefaultViewBinder(new DefaultItemViewBinder());
6557

58+
genDataList(true);
6659
multiTypeAdapter.setList(dataList);
6760
recycler_view.setAdapter(multiTypeAdapter);
61+
multiTypeAdapter.notifyDataSetChanged();
62+
63+
new Handler().postDelayed(() -> {
64+
genDataList(false);
65+
multiTypeAdapter.notifyDataSetChanged();
66+
Toast.makeText(DefaultViewBinderActivity.this, "追加数据", Toast.LENGTH_SHORT).show();
67+
}, 5000);
68+
}
69+
70+
public void genDataList(boolean isFirst) {
71+
if (!isFirst) {
72+
dataList.add(new HintBean());
73+
}
74+
75+
dataList.add(new BannerBean());
76+
dataList.add(new MenuBean());
77+
78+
for (int i = 0; i < 2; i++) {
79+
dataList.add(new GoodsShowBean());
80+
}
81+
82+
dataList.add(new BigTitleBean("猜你喜欢"));
83+
for (int i = 0; i < 10; i++) {
84+
dataList.add(new LikeBean());
85+
}
6886
}
6987
}

app/src/main/java/cn/junhua/android/commonadapter/activity/One2ManyActivity.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,16 @@
66
import android.support.v7.widget.DividerItemDecoration;
77
import android.support.v7.widget.LinearLayoutManager;
88
import android.support.v7.widget.RecyclerView;
9+
import android.widget.Toast;
10+
11+
import java.util.ArrayList;
12+
import java.util.List;
913

1014
import cn.junhua.android.adapter.MultiTypeAdapter;
1115
import cn.junhua.android.commonadapter.R;
16+
import cn.junhua.android.commonadapter.bean.hint.HintBean;
1217
import cn.junhua.android.commonadapter.bean.one2many.FriendBean;
18+
import cn.junhua.android.commonadapter.binder.hint.HintItemViewBinder;
1319
import cn.junhua.android.commonadapter.binder.one2many.FriendPhoto1ItemViewBinder;
1420
import cn.junhua.android.commonadapter.binder.one2many.FriendPhoto3ItemViewBinder;
1521
import cn.junhua.android.commonadapter.binder.one2many.FriendPhoto4ItemViewBinder;
@@ -23,6 +29,8 @@ public class One2ManyActivity extends AppCompatActivity {
2329

2430
private RecyclerView recycler_view;
2531
private MultiTypeAdapter mMultiTypeAdapter;
32+
private List<Object> mList = new ArrayList<>();
33+
2634

2735
@Override
2836
protected void onCreate(Bundle savedInstanceState) {
@@ -34,6 +42,7 @@ protected void onCreate(Bundle savedInstanceState) {
3442
//再创建MultiTypeAdapter
3543
mMultiTypeAdapter = new MultiTypeAdapter();
3644
//注册ViewBinder
45+
mMultiTypeAdapter.register(HintBean.class, new HintItemViewBinder());//一对一
3746
//一对多条目注册
3847
mMultiTypeAdapter.register(FriendBean.class)
3948
.mapping(new FriendPhoto1ItemViewBinder(),
@@ -46,11 +55,18 @@ protected void onCreate(Bundle savedInstanceState) {
4655
return FriendPhoto3ItemViewBinder.class;
4756
});
4857

49-
mMultiTypeAdapter.setList(FriendBean.getRandomFriend());
58+
mList.addAll(FriendBean.getRandomFriend());
59+
60+
mMultiTypeAdapter.setList(mList);
5061
recycler_view.setLayoutManager(new LinearLayoutManager(this));
5162
recycler_view.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
5263
recycler_view.setAdapter(mMultiTypeAdapter);
5364

54-
new Handler().postDelayed(() -> mMultiTypeAdapter.notifyDataSetChanged(), 3000);
65+
new Handler().postDelayed(() -> {
66+
mList.add(new HintBean());
67+
mList.addAll(FriendBean.getRandomFriend());
68+
mMultiTypeAdapter.notifyDataSetChanged();
69+
Toast.makeText(One2ManyActivity.this, "追加数据", Toast.LENGTH_SHORT).show();
70+
}, 3000);
5571
}
5672
}

app/src/main/java/cn/junhua/android/commonadapter/activity/TaobaoActivity.java

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
11
package cn.junhua.android.commonadapter.activity;
22

33
import android.os.Bundle;
4+
import android.os.Handler;
45
import android.support.annotation.Nullable;
56
import android.support.v7.app.AppCompatActivity;
67
import android.support.v7.widget.GridLayoutManager;
78
import android.support.v7.widget.RecyclerView;
9+
import android.widget.Toast;
810

911
import java.util.ArrayList;
1012
import java.util.List;
1113

1214
import cn.junhua.android.adapter.MultiTypeAdapter;
1315
import cn.junhua.android.commonadapter.R;
16+
import cn.junhua.android.commonadapter.bean.hint.HintBean;
1417
import cn.junhua.android.commonadapter.bean.taobao.BannerBean;
1518
import cn.junhua.android.commonadapter.bean.taobao.BigTitleBean;
1619
import cn.junhua.android.commonadapter.bean.taobao.GoodsShowBean;
1720
import cn.junhua.android.commonadapter.bean.taobao.LikeBean;
1821
import cn.junhua.android.commonadapter.bean.taobao.MenuBean;
22+
import cn.junhua.android.commonadapter.binder.hint.HintItemViewBinder;
1923
import cn.junhua.android.commonadapter.binder.taobao.BannerItemViewBinder;
2024
import cn.junhua.android.commonadapter.binder.taobao.BigTitleItemViewHinder;
2125
import cn.junhua.android.commonadapter.binder.taobao.GoodsShowItemViewHinder;
@@ -30,26 +34,15 @@
3034
public class TaobaoActivity extends AppCompatActivity {
3135
private RecyclerView recycler_view;
3236
private MultiTypeAdapter multiTypeAdapter;
33-
private List<Object> dataList;
37+
private List<Object> dataList = new ArrayList<>();
38+
3439

3540
@Override
3641
protected void onCreate(@Nullable Bundle savedInstanceState) {
3742
super.onCreate(savedInstanceState);
3843
setContentView(R.layout.activity_recycler_view);
39-
dataList = new ArrayList<>();
40-
dataList.add(new BannerBean());
41-
dataList.add(new MenuBean());
42-
43-
for (int i = 0; i < 2; i++) {
44-
dataList.add(new GoodsShowBean());
45-
}
4644

47-
dataList.add(new BigTitleBean("猜你喜欢"));
48-
for (int i = 0; i < 10; i++) {
49-
dataList.add(new LikeBean());
50-
}
51-
52-
recycler_view = (RecyclerView) findViewById(R.id.recycler_view);
45+
recycler_view = findViewById(R.id.recycler_view);
5346

5447
//设置布局管理器
5548
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 2);
@@ -68,13 +61,39 @@ public int getSpanSize(int position) {
6861
//初始化MultiTypeAdapter
6962
multiTypeAdapter = new MultiTypeAdapter();
7063
//注册ViewBinder
64+
multiTypeAdapter.register(HintBean.class, new HintItemViewBinder());//一对一
7165
multiTypeAdapter.register(BannerBean.class, new BannerItemViewBinder());
7266
multiTypeAdapter.register(MenuBean.class, new MenuItemViewHinder());
7367
multiTypeAdapter.register(LikeBean.class, new LikeItemViewHinder());
7468
multiTypeAdapter.register(GoodsShowBean.class, new GoodsShowItemViewHinder());
7569
multiTypeAdapter.register(BigTitleBean.class, new BigTitleItemViewHinder());
7670

71+
genDataList(true);
7772
multiTypeAdapter.setList(dataList);
7873
recycler_view.setAdapter(multiTypeAdapter);
74+
75+
new Handler().postDelayed(() -> {
76+
genDataList(false);
77+
multiTypeAdapter.notifyDataSetChanged();
78+
Toast.makeText(TaobaoActivity.this, "追加数据", Toast.LENGTH_SHORT).show();
79+
}, 3000);
80+
}
81+
82+
83+
public void genDataList(boolean isFirst) {
84+
if (!isFirst) {
85+
dataList.add(new HintBean());
86+
}
87+
dataList.add(new BannerBean());
88+
dataList.add(new MenuBean());
89+
90+
for (int i = 0; i < 2; i++) {
91+
dataList.add(new GoodsShowBean());
92+
}
93+
94+
dataList.add(new BigTitleBean("猜你喜欢"));
95+
for (int i = 0; i < 10; i++) {
96+
dataList.add(new LikeBean());
97+
}
7998
}
8099
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package cn.junhua.android.commonadapter.bean.hint;
2+
3+
/**
4+
* created by linjunhua on 2019/11/3
5+
*/
6+
public class HintBean {
7+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package cn.junhua.android.commonadapter.binder.hint;
2+
3+
import cn.junhua.android.adapter.CommonViewHolder;
4+
import cn.junhua.android.adapter.SimpleItemViewBinder;
5+
import cn.junhua.android.commonadapter.R;
6+
import cn.junhua.android.commonadapter.bean.hint.HintBean;
7+
8+
/**
9+
* 追加的数据提示
10+
* Created by junhua.lin on 2018/3/29.
11+
*/
12+
public class HintItemViewBinder extends SimpleItemViewBinder<HintBean> {
13+
14+
@Override
15+
public void onBindViewHolder(CommonViewHolder holder, HintBean bean, int position) {
16+
holder.setText(R.id.tv_hint, "以下为追加的数据");
17+
}
18+
19+
@Override
20+
protected int getLayoutId() {
21+
return R.layout.hint_binder_layoutt;
22+
}
23+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools"
4+
android:layout_width="match_parent"
5+
android:layout_height="wrap_content"
6+
android:background="#ccc666"
7+
android:gravity="center"
8+
android:orientation="vertical"
9+
android:padding="20dp">
10+
11+
<TextView
12+
android:id="@+id/tv_hint"
13+
android:layout_width="wrap_content"
14+
android:layout_height="wrap_content"
15+
android:gravity="center"
16+
android:textColor="#00f"
17+
android:textSize="16sp"
18+
tools:text="default view binder" />
19+
20+
</LinearLayout>

0 commit comments

Comments
 (0)