RecyclerView的使用方法:
1、首先写自己要显示的数据的实体类。
2、写出RecyclerView子项的布局xml文件。
3、写出RecyclerView的适配器类,这个适配器类必须继承RecyclerView.Adapter,且必须重写onCreateViewHolder(),onBindViewHolder(),getItemCount()这三个方法。代码模板如下
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
//定义要显示的数据实体类的一个List
//例如
//private List<Msg> mMsgList;
//构造函数
public MyAdapter(List<Msg> msgList){
mMsgList=msgList;
}
static class ViewHolder extends RecyclerView.ViewHolder{
//在这里定义RecyclerView子项布局中的元素
//例如
//Button button1;
//TextView textView1;
public ViewHolder(View view){
super(view);
//在这里通过findViewById()获得控件实例
//例如
//button1=(Button)findViewById(R.id.button1);
//textView1=(TextView)findViewById(R.id.textView1);
}
}
//接下来重写onCreateViewHolder(),onBindViewHolder(),getItemCount()这三个方法
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent,int viewType){
//创建一个view实例,把子项布局作为参数传进去,然后再把这个view传给ViewHolder的构造函数,最后返回这个viewHolder
View view=LayoutInflater.from(parent.getContext()).inflate(R.layout.msg_item,parent,false);
final ViewHolder viewHolder=new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder,int position){
//设置Button、TextView等控件的显示信息,以及设置Listener,响应事件
}
@Override
public int getItemCount(){
//返回控件个数,例如return mMsgList.size();
}
}
4、在MainActivity中,定义RecyclerView实例和MyAdapter实例,然后把MyAdatper实例传给RecyclerView即可
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputText=(EditText)findViewById(R.id.input_text);
send=(Button)findViewById(R.id.send);
mRecyclerView=(RecyclerView)findViewById(R.id.recycler_view);//这里的recycler_view定义在activity_main中
MyAdapter adapter=new MyAdapter(msgList);//创建adapter实例
mRecyclerView.setAdapter(adapter);//传给RecyclerView实例
}