在我們的開發(fā)中對于大量的列表數(shù)據(jù)進(jìn)行展示歌逢,后端開發(fā)肯定會進(jìn)行分頁處理生闲,而在android前端我們也需要進(jìn)行分頁加載請求。
這里我推薦上拉 戏阅、下拉的控件使用第三方控件SmartRefreshLayout
它的github地址為https://github.com/scwang90/SmartRefreshLayout
具體的引入 看簡介 我們就能明白
現(xiàn)在對于list 我推薦使用recyclerView而不是listView
具體原因是前者在更新懒熙,刷新list時做了較號的封裝。
我們對于list的操作只需要在其Adapter進(jìn)行
具體看代碼:
public class CowWightLogAdapter extends RecyclerView.Adapter<CowWightLogAdapter.ViewHolder> {
private List<WeightLogData> list;
static class ViewHolder extends RecyclerView.ViewHolder{
View view;
TextView tv_sumweight;
TextView tv_cownum;
TextView tv_weighttime;
public ViewHolder(View itemView) {
super(itemView);
view = itemView;
tv_sumweight = (TextView) view.findViewById(R.id.tv_sumweight);
tv_cownum = (TextView) view.findViewById(R.id.tv_cownum);
tv_weighttime = (TextView) view.findViewById(R.id.tv_weighttime);
}
}
public CowWightLogAdapter(List<WeightLogData> list){
this.list = list;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_cowweight_log,parent,false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
//將數(shù)據(jù)綁定到控件上
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
WeightLogData weightLogData = list.get(position);
holder.tv_sumweight.setText("總重量:"+weightLogData.getSumweigh()+"公斤");
holder.tv_cownum.setText("數(shù)量:"+weightLogData.getCattlenum()+"頭");
holder.tv_weighttime.setText(weightLogData.getWtime());
}
@Override
public int getItemCount() {
return list.size();
}
//下面兩個方法提供給頁面刷新和加載時調(diào)用
public void add(List<WeightLogData> addMessageList) {
//增加數(shù)據(jù)
int position = list.size();
list.addAll(position, addMessageList);
notifyItemInserted(position);
}
public void refresh(List<WeightLogData> newList) {
//刷新數(shù)據(jù)
list.removeAll(list);
list.addAll(newList);
notifyDataSetChanged();
}
}
我們在界面上只需要對于新的URL請求 得到新的newlist數(shù)據(jù)普办,下拉加載 只需adapter.add(newlist)即可工扎,對于上拉刷新只需要adapter.refresh(newlist)。就可以了衔蹲。
是不是很簡單肢娘,如果覺得有用的點(diǎn)個贊評論一下。