Skip to content

Commit ae6393a

Browse files
committed
add BaseListAdapter 增加 setNewData
1 parent b11fe6e commit ae6393a

File tree

3 files changed

+31
-9
lines changed

3 files changed

+31
-9
lines changed

ByRecyclerview/src/main/java/me/jingbin/library/adapter/BaseByRecyclerViewAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ public void setPageEmptyView(int emptyLayoutId) {
238238
}
239239

240240
/**
241-
* 设置数据和处理空视图。空视图是在 setEmptyView() 设置的。
241+
* 设置数据和处理空视图。空视图是在 setPageEmptyView() 设置的。
242242
* 如果想列表上方显示状态视图(StateView),不能使用这个方法。
243243
*
244244
* @param isFirstPage 是否是第一页

ByRecyclerview/src/main/java/me/jingbin/library/adapter/BaseListAdapter.java

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,21 @@ protected BaseListAdapter() {
3737
}
3838

3939
protected BaseListAdapter(List<T> data) {
40-
this.mData = data == null ? new ArrayList<T>() : data;
40+
mData = data == null ? new ArrayList<T>() : data;
4141
}
4242

4343
@Override
4444
public int getCount() {
45+
checkNoNull();
4546
return mData.size();
4647
}
4748

4849
@Override
4950
public T getItem(int position) {
50-
return mData.get(position);
51+
if (mData != null && mData.size() > 0 && position >= 0 && position < mData.size()) {
52+
return mData.get(position);
53+
}
54+
return null;
5155
}
5256

5357
@Override
@@ -81,24 +85,41 @@ public List<T> getData() {
8185
}
8286

8387
public void setData(List<T> data) {
84-
this.mData = data;
88+
mData = data;
8589
}
8690

8791
public void addAll(List<T> data) {
88-
this.mData.addAll(data);
92+
checkNoNull();
93+
mData.addAll(data);
8994
}
9095

9196
public void removeAll(List<T> data) {
92-
this.mData.removeAll(data);
97+
if (mData == null) return;
98+
mData.removeAll(data);
9399
}
94100

95101
public void add(T t) {
96-
this.mData.add(t);
102+
checkNoNull();
103+
mData.add(t);
97104
}
98105

99106
public void clear() {
100-
this.mData.clear();
107+
if (mData == null) return;
108+
mData.clear();
101109
}
102110

111+
private void checkNoNull() {
112+
if (mData == null) {
113+
mData = new ArrayList<>();
114+
}
115+
}
116+
117+
/**
118+
* 初始化数据,并刷新页面
119+
*/
120+
public void setNewData(List<T> data) {
121+
this.mData = data == null ? new ArrayList<T>() : data;
122+
notifyDataSetChanged();
123+
}
103124

104125
}

app/src/main/java/me/jingbin/byrecyclerview/fragment/BindingListFragment.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,11 @@ private void initAdapter() {
7171
LayoutHeaderViewBinding headerBinding = DataBindingUtil.inflate(LayoutInflater.from(activity), R.layout.layout_header_view, binding.listView, false);
7272
LayoutFooterViewBinding footerBinding = DataBindingUtil.inflate(LayoutInflater.from(activity), R.layout.layout_footer_view, binding.listView, false);
7373

74-
ListViewBindingAdapter mAdapter = new ListViewBindingAdapter(DataUtil.get(activity, 30));
74+
ListViewBindingAdapter mAdapter = new ListViewBindingAdapter();
7575
binding.listView.setAdapter(mAdapter);
7676
binding.listView.addFooterView(footerBinding.getRoot());
7777
binding.listView.addHeaderView(headerBinding.getRoot());
78+
mAdapter.setNewData(DataUtil.get(activity, 30));
7879

7980
binding.listView.setHeaderDividersEnabled(false);
8081
binding.listView.setFooterDividersEnabled(false);

0 commit comments

Comments
 (0)