PullToRefresh实现ListView的刷新,加载更多的展示
2017-10-19 13:31
555 查看
public class Zi_Xun_Fragment extends Fragment {
int page_num=1;
private PullToRefreshListView pullToRefreshListView;
List<DataDataBean.NewslistBean> list = new ArrayList<>();
private MyAdapter adapter;
private ILoadingLayout startLabels;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.zi_xun_frangment_layout, container, false);
pullToRefreshListView = view.findViewById(R.id.refresh_list_view);
return view;
//
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
/*设置pullToRefreshListView的刷新模式,BOTH代表支持上拉和下拉,PULL_FROM_END代表上拉,PULL_FROM_START代表下拉 */
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
startLabels = pullToRefreshListView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在拉");
startLabels.setReleaseLabel("放开刷新");
ILoadingLayout endLabels = pullToRefreshListView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
getDataFromNet();
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
getRefreshData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page_num++;
getaboveData();
}
});
}
/**
* 上拉加载更多
*/
private void getaboveData() {
String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+page_num;
GetNetData.getData(getActivity(), path, new JsonStringDataNet() {
@Override
public void getJsonData(String json) {
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
list.addAll(dataDataBean.getNewslist());
setAdapter();
//停止刷新加载更多
pullToRefreshListView.onRefreshComplete();
}
});
}
/**
* 下拉刷新的方法
*/
private void getRefreshData() {
String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1";
GetNetData.getData(getActivity(), path, new JsonStringDataNet() {
@Override
public void getJsonData(String json) {
list.clear();
adapter.notifyDataSetChanged();
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
list.addAll(0,dataDataBean.getNewslist());
setAdapter();
//停止刷新
pullToRefreshListView.onRefreshComplete();
//设置时间
Date date= new Date(System.currentTimeMillis());
SimpleDateFormat item = new SimpleDateFormat("HH:mm");
startLabels.setLastUpdatedLabel(item.format(date));
}
});
}
//请求网络数据
private void getDataFromNet() {
String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1";
GetNetData.getData(getActivity(), path, new JsonStringDataNet() {
//重写的自定义接口中的方法
@Override
public void getJsonData(String json) {
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
list.addAll(dataDataBean.getNewslist());
setAdapter();
}
});
}
private void setAdapter() {
//设置适配器
if (adapter==null) {
adapter = new MyAdapter(getActivity(), list);
pullToRefreshListView.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
}
}
int page_num=1;
private PullToRefreshListView pullToRefreshListView;
List<DataDataBean.NewslistBean> list = new ArrayList<>();
private MyAdapter adapter;
private ILoadingLayout startLabels;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.zi_xun_frangment_layout, container, false);
pullToRefreshListView = view.findViewById(R.id.refresh_list_view);
return view;
//
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
/*设置pullToRefreshListView的刷新模式,BOTH代表支持上拉和下拉,PULL_FROM_END代表上拉,PULL_FROM_START代表下拉 */
pullToRefreshListView.setMode(PullToRefreshBase.Mode.BOTH);
startLabels = pullToRefreshListView.getLoadingLayoutProxy(true, false);
startLabels.setPullLabel("下拉刷新");
startLabels.setRefreshingLabel("正在拉");
startLabels.setReleaseLabel("放开刷新");
ILoadingLayout endLabels = pullToRefreshListView.getLoadingLayoutProxy(false, true);
endLabels.setPullLabel("上拉刷新");
endLabels.setRefreshingLabel("正在载入...");
endLabels.setReleaseLabel("放开刷新...");
getDataFromNet();
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
getRefreshData();
}
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
page_num++;
getaboveData();
}
});
}
/**
* 上拉加载更多
*/
private void getaboveData() {
String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+page_num;
GetNetData.getData(getActivity(), path, new JsonStringDataNet() {
@Override
public void getJsonData(String json) {
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
list.addAll(dataDataBean.getNewslist());
setAdapter();
//停止刷新加载更多
pullToRefreshListView.onRefreshComplete();
}
});
}
/**
* 下拉刷新的方法
*/
private void getRefreshData() {
String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1";
GetNetData.getData(getActivity(), path, new JsonStringDataNet() {
@Override
public void getJsonData(String json) {
list.clear();
adapter.notifyDataSetChanged();
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
list.addAll(0,dataDataBean.getNewslist());
setAdapter();
//停止刷新
pullToRefreshListView.onRefreshComplete();
//设置时间
Date date= new Date(System.currentTimeMillis());
SimpleDateFormat item = new SimpleDateFormat("HH:mm");
startLabels.setLastUpdatedLabel(item.format(date));
}
});
}
//请求网络数据
private void getDataFromNet() {
String path = "https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1";
GetNetData.getData(getActivity(), path, new JsonStringDataNet() {
//重写的自定义接口中的方法
@Override
public void getJsonData(String json) {
Gson gson = new Gson();
DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class);
list.addAll(dataDataBean.getNewslist());
setAdapter();
}
});
}
private void setAdapter() {
//设置适配器
if (adapter==null) {
adapter = new MyAdapter(getActivity(), list);
pullToRefreshListView.setAdapter(adapter);
}else{
adapter.notifyDataSetChanged();
}
}
}
相关文章推荐
- 使用PullToRefreshScrollView实现无线轮播和ListView同时刷新加载
- 使用SwipeRefreshLayout和自定义的PullToReFreshListView实现下拉刷新和上拉加载更多
- PullToRefreshListView实现下拉刷新和上拉加载更多
- PullToRefresh实现listview刷新加载
- pulltorefresh上拉加载,没有更多数据的时候显示“加载完成”,不回调刷新接口的实现
- PullToRefresh实现listview刷新加载
- 上拉刷新 下拉加载更多-PullToRefreshListView的简介
- PullToRefresh实现listview刷新加载
- PullToRefresh实现下拉刷新和上拉加载更多的ListView
- pulltoRefreshSwipeMenuListview-带侧滑的可下拉刷新、上拉加载更多的控件
- PullToRefreshListView上拉加载,下拉刷新 刷新网络数据 简单实现ListView显示网络数据
- PullToReFresh 实现 RecycleView 横向滑动的刷新和加载更多
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
- 超简单的 listview的第三方控件PullToRefreshListView 上拉刷新,下拉加载更多,分页加载
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
- pulltorefresh(一)使用介绍,实现下拉刷新上拉加载更多
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向
- PullToRefresh的实现上拉刷新下拉加载
- PullToRefresh的实现上拉刷新下拉加载