简称增强版的ListView
app->build.gradle
dependencies{
compile 'xxx'
//RecyClerView 我的版本是26+
compile 'com.android.support:recyclerview- v7:26+'
}
新建类ResultAdapter
//定义一个集合存放传入数据
private List<Result> resultList;
//构造函数
public ResultAdapter(List<Result> resultList){
this.resultList=resultList;
}
-----------------------------------------------------------------------------
定义一个内部类ViewHolder继承RecyclerView.ViewHolder
static class ViewHolder extends RecyclerView.ViewHolder{
ImageView imgView;
TextView textView;
}
//构造函数传入一个View
public ViewHolder(View itemView){
super(itemView);
//通过布局获得实例
imgView=itemView.findViewById(R.id.xx_image);
textView=itemView.findViewById(R.id.xx_text);
}
-----------------------------------------------------------------------------
ResultAdapter
继承了 RecyclerView 并给 RecyclerView内置的静态类
Adapter传入ResultAdapter自身定义的泛型类 ViewHolder
public class ResultAdapter extends RecyclerView.Adapter<ResultAdapter.ViewHolder>
//源类 public abstract static class Adapter<VH extends ViewHolder>
-------------------------------------------------------------------------------
此外还要重写三个方法AIT enter即可
@Override
1. onCreateViewHolder//创建视图|布局器
2. onBingViewHolder //赋值
3. getItemCount //获得数量
onCreateViewHolder(ViewGroup parent, int viewType)
{
//http://www.cnblogs.com/baipengzhan/p/6257510.html 对下列方法的一个追溯
//LayoutInflater.from(parent.getContext()).inflate(R.layout.xx_item_layout,parent,false);
//这个视图布局加载器来自(当前视图的上下文) 我认为它是读取了所有的xml布局,然后再进行二次筛选
//三个参数 参数1为默认就是一个TextView一个ImageView的视图
//参数2 使用当前的视图 也就是想要动态生成的视图
//参数3 false使用第二个参数生成的xml视图 true使用 第一个参数的xml视图布局
// 如果分析错误还望指正
return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.xx_item_layout,parent,false));
}
--------------------------------------------------------------------------------------------------------------------------
package net.sumuyu.adapter; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import net.sumuyu.act.R; import net.sumuyu.entity.Result; import java.util.List; /** * Created by 时秋 on 2018/5/7. */ public class ResultAdapter extends RecyclerView.Adapter<ResultAdapter.ViewHolder>{ private List<Result> resultList; public ResultAdapter(List<Result> resultList){ this.resultList=resultList; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { ViewHolder holder=new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.xx_item_layout,parent,false)); return holder; } @Override public void onBindViewHolder(ViewHolder holder, int position) { Result c=resultList.get(position); holder.imgView.setImageResource(c.getImage()); holder.textView.setText(c.getTitle()); } @Override public int getItemCount() { return resultList.size(); } static class ViewHolder extends RecyclerView.ViewHolder{ ImageView imgView; TextView textView; public ViewHolder(View itemView) { super(itemView); imgView=itemView.findViewById(R.id.xx_image); textView=itemView.findViewById(R.id.xx_title); } } }----------------------------------------------------------------------------------------------------------------------------------
循环赋值Main的过程略