到依赖:
compile 'com.jcodecraeer:xrecyclerview:1.3.2'
布局文件:(item布局根据自己需要的定义)
<com.jcodecraeer.xrecyclerview.XRecyclerView android:id="@+id/recyclerview" android:layout_width="fill_parent" android:layout_height="fill_parent" />适配器:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { public List<been.DataBean.ReturnDataBean.ComicsBean> datas = null; public Context context; public MyAdapter(List<been.DataBean.ReturnDataBean.ComicsBean> datas,Context context) { this.datas = datas; this.context = context; } //创建新View,被LayoutManager所调用 @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { //获取item布局 View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item,viewGroup,false); ViewHolder vh = new ViewHolder(view); return vh; } //将数据与界面进行绑定的操作 @Override public void onBindViewHolder(ViewHolder viewHolder, int position) { //给item里面的东西设置值 viewHolder.name.setText(datas.get(position).getName()); viewHolder.tag.setText(datas.get(position).getTags().toString()); viewHolder.description.setText(datas.get(position).getDescription()); viewHolder.contag.setText("月票"+datas.get(position).getConTag()); Glide.with(context).load(datas.get(position).getCover()).into(viewHolder.image); } //获取数据的数量 @Override public int getItemCount() { return datas.size(); } //自定义的ViewHolder,持有每个Item的的所有界面元素 public static class ViewHolder extends RecyclerView.ViewHolder { //获取item里面的id public TextView name,tag,description,contag; public ImageView image; public ViewHolder(View view){ super(view); name = (TextView) view.findViewById(R.id.name); tag = (TextView) view.findViewById(R.id.tag); description = (TextView) view.findViewById(R.id.description); contag = (TextView) view.findViewById(R.id.contag); image = (ImageView)view.findViewById(R.id.image); } } }
主方法
public class MainActivity extends AppCompatActivity implements XRecyclerView.LoadingListener{ private XRecyclerView mRecyclerView; private MyAdapter mAdapter; private String urlPath ="http://app.u17.com/v3/appV3_3/android/phone/list/commonComicList?argValue=23&argName=sort&argCon=0&android_id=4058040115108878&v=3330110&model=GT-P5210&come_from=Tg002&page="; private List<been.DataBean.ReturnDataBean.ComicsBean> list; int page = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); x.view().inject(this); xutils(page); mRecyclerView = (XRecyclerView)findViewById(R.id.recyclerview) ; LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.setLoadingListener(this); } private void xutils(final int page) { RequestParams entity = new RequestParams(urlPath+page); x.http().get(entity, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { been been = new Gson().fromJson(result, test.com.xrecyclerview.been.class); list = new ArrayList<been.DataBean.ReturnDataBean.ComicsBean>(); list.addAll(been.getData().getReturnData().getComics()); mAdapter = new MyAdapter(list,MainActivity.this); mRecyclerView.setAdapter(mAdapter); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { //刷新完成 mRecyclerView.refreshComplete(); mRecyclerView.loadMoreComplete(); } }); } @Override public void onRefresh() {//刷新 page = 1; xutils(page); } @Override public void onLoadMore() {// 加载更多 page++; xutils(page); } }