给RecycleView初学者:RecycleView的基础用法和一个Demo

Ray87L 8年前
   <p>研究了一下午RecyclerView的Adapter写法。网上看了很多教程好坑,到处都是用自己定义的类看的我云里雾里。。现在总算搞明白了,RecyclerView的比较基础的入门用法。。</p>    <p>下面给跟我一样刚接触的同学写一下我学写Adapter时候做的详尽笔记,希望能帮到看到这篇文章的、和我几个小时前一样还在纠结的菜鸟们。</p>    <p>RecycleView的用法主要分三个部分:</p>    <p>1.在你的布局里创建一个RecyclerView,然后创建一个需要在RecyclerView内循环填充的布局</p>    <p>2.写RecyclerView的Adapter</p>    <p>3.在需要调用RecyclerView的Activity中配置RecyclerView</p>    <p>1.省略</p>    <p>2.RecyclerView的Adapter写法 (代码中的注释已经把我所了解的思路详尽的介绍清楚了)</p>    <pre>  <code class="language-java">//继承父类  public class SettingsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {      //1.对各种需要传入的数据进行声明      private Context context;//上下文环境      private String[] settings;/*根据需要更改*///接入数据的类型        //2.构造方法,作为适配器接收参数的入口      public SettingsAdapter(Context context, String[] data/*根据需要更改*/) {          this.context = context;//上下文入口          this.settings = data;//数据入口      }        //4.默认需要实现的方法,负责为Item创建视图容器,并且返回一个该容器的实例传给onBindViewHolder方法      @Override      public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {          //以下一步:负责实例化待逐条填充的layout,将其转换为view          View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_settings, parent, false);          //以下一步:负责实例化传入的待填充的view的容器          MyViewHolder myViewHolder = new MyViewHolder(view);          return myViewHolder;      }        //5.默认需要实现的方法,负责将数据写入在Item布局的元素里      @Override      public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {          /*针对不同的元素写入数据,根据需要更改*/          MyViewHolder myViewHolder= (MyViewHolder) holder;          myViewHolder.textViewSetting.setText("settings");      }        //6.告诉适配器一共有多少条数据需要填充      @Override      public int getItemCount() {          return settings.length;      }        //3.viewholder的内部类,用于构建viewholder和其要填充的item中的元素的对象,并且将对象和其中的元素绑定      //总结:将布局的规则用代码实例化为对象,将布局中的元素用代码实例化为对象的属性,方便onBindViewHolder方法进行写入      class MyViewHolder extends RecyclerView.ViewHolder {          public TextView textViewSetting;/*根据需要更改*///初始化细分布局中的元素          public MyViewHolder(View itemView) {              super(itemView);//这里的itemView指的是细分布局,即需要进行重复构建的布局              textViewSetting = (TextView) itemView.findViewById(R.id.shezhixiang);/*根据需要更改*///布局中的TextView需要填写          }      }  }</code></pre>    <p>3.为每个RecyclerView创建一个LinerLayoutManager:</p>    <pre>  <code class="language-java">LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(this);</code></pre>    <p>将管理器与RecyclerView绑定:</p>    <pre>  <code class="language-java">recyclerView_changgui.setLayoutManager(linearLayoutManager1);</code></pre>    <p>为RecyclerView绑定适配器:</p>    <pre>  <code class="language-java">recyclerView_changgui.setAdapter(new SettingsAdapter(this, new String[4]));</code></pre>    <p> </p>    <p>来自:http://www.jianshu.com/p/74ad6a002d5b</p>    <p> </p>