获取所有数据后,在handler里面进行展示,首页我默认展示10条,listData为我从后台请求的所有数据,
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
switch (msg.what){
case LIST_CODE:
for(int i = 0; i < 10; i ++){//默认展示10条
String movieUrl = ((Map)listData.get(i)).get("m_img_url").toString().trim();//图片
String movieName = ((Map)listData.get(i)).get("m_name").toString().trim();//名字
Map map = new HashMap();
map.put("name",movieName);
map.put("image",movieUrl);
MovieUtil movieUtil = new MovieUtil(movieName,movieUrl);
list.add(movieUtil);
}
showAdapter = new ShowAdapter(MainActivity.this,
list);//展示
listView.setAdapter(showAdapter);
refreshPage();//刷新加载
}
}
// 刷新加载
private void refreshPage(){
// mOneCicle一次加载展示多少个
// mCount一共能加载多少次
// setLoadMoreFinished
//刷新
// refreshLayout.
refreshLayout1.setOnRefreshListener(new OnRefreshListener() {//刷新
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {//刷新
refreshLayout.finishRefresh(1000);//传入false表示刷新失败
getData();//获取数据
}
});
// 加载
refreshLayout1.setOnLoadMoreListener(new OnLoadMoreListener() {//加载更多
@Override
public void onLoadMore(RefreshLayout refreshlayout) {
refreshlayout.finishLoadMore(1000/*,false*/);//传入false表示加载失败
if(mCount==Math.ceil((listData.size())/10) || mOneCicle>listData.size()){//向上取整
refreshlayout.finishLoadMoreWithNoMoreData();//全部加载已完成
}else{
refreshLayout1.finishLoadMore();//加载完成
}
mCount ++;
if(mOneCicle>listData.size()){
return;
}
mOneCicle += 10;
for(int i = mOneCicle-10; i < mOneCicle; i ++){//加载页面 每次加载十条
if(i<listData.size()){
String movieUrl = ((Map)listData.get(i)).get("m_img_url").toString().trim();
String movieName = ((Map)listData.get(i)).get("m_name").toString().trim();
Log.d("刷新页面:",movieName);
MovieUtil movieUtil = new MovieUtil(movieName,movieUrl);
list.add(movieUtil);
}
}
showAdapter.notifyDataSetChanged();//更新页面
}
});
}
}
详细代码移步github smartRefreshDemo
更多设置查看官网 SmartRefreshLayout