- 添加依赖
compile 'com.android.support:recyclerview-v7:25.3.0'
- 创建bean对象
这里的bean对象可以写成两个部分,一部分表示原始数据,一部分在RecycelView进行显示。
这样说可能有点抽象,举个例子说明。我需要显示如图的样式:
我创建两个bean对象,一个用于数据的传递,一个在adapter中用于item的显示。InfoBean用于控制数据。ItemHolder用于显示数据
代码请参考:
infoBean对象如下:
package com.hut.reoger.studentsrecycleview.bean;
/**
* Created by 24540 on 2017/3/28.
*/
public class InfoBean {
private int id;
private String title;
private String content;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
ItemHolder代码如下:
public class ItemHolder extends RecyclerView.ViewHolder{
public ImageView imageView;
public TextView teTitle;
public TextView teContent;
public ItemHolder(View itemView) {
super(itemView);
imageView = (ImageView) itemView.findViewById(R.id.item_image);
teTitle = (TextView) itemView.findViewById(R.id.item_title);
teContent = (TextView) itemView.findViewById(R.id.item_content);
}
}
这里需要记住的是,这个类需要继承ViewHolder。当然,这个类写在adapter中也完全是ok的。
- 创建adapter对象
详细参照例子,这里提出要点:
- 继承RecyclerView.Adapter<T>
- 实现继承的方法。
- 利用onCreateViewHolder方法创建ViewHolder
- 利用onBindViewHolder方法显示具体内容
- 利用getItemCount总计数据的总数
public class MyAdapter extends RecyclerView.Adapter<ItemHolder> {
private LayoutInflater mInflater;
private List<InfoBean> datas;
public MyAdapter(Context mContext, List<InfoBean> datas) {
this.datas = datas;
mInflater = LayoutInflater.from(mContext);
}
@Override
public ItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = mInflater.inflate(R.layout.item_list,parent,false);
ItemHolder itemHolder = new ItemHolder(v);
return itemHolder;
}
@Override
public void onBindViewHolder(ItemHolder holder, int position) {
holder.imageView.setImageResource(datas.get(position).getId());
holder.teTitle.setText(datas.get(position).getTitle());
holder.teContent.setText(datas.get(position).getContent());
}
@Override
public int getItemCount() {
return datas.size();
}
}
4.创建item布局和主布局
这一点比较简单,不做解释
- 在主界面显示recyclerView
这一点同普通的listView实现基本相同,有一点需要注意的是:在显示之前需要为recyclerVIew设置布局。
关键代码如下:
RecyclerView.LayoutManager mManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
mRecyclerView.setLayoutManager(mManager);
基本上到这里,就差不多完成了。
代码下载