zoukankan      html  css  js  c++  java
  • Android RecyclerView初探

    今天研究了一下RecyclerView,RecyclerView比ListView的效率更高而且可以横向滑动,所以现在许多Android项目更倾向与使用RecyclerView。

    下面是一个RecyclerView的demo

    RecyclerView的库导入

    compile 'com.android.support:recyclerview-v7:24.2.1'

    首先先得到控件和设置布局

    rv = (RecyclerView) findViewById(R.id.rv);
    rv.setLayoutManager(new LinearLayoutManager(context));

    然后输入测试数据

    list = new ArrayList<String>();
    for (int i = 0; i < 30; i++) {
    list.add("测试记录" + i);
    }
     

    设置Adapter,Adapter是自己定义的一个适配器可以放一个图片和文本

    设置点击事件,RecyclerView自己没有点击事件必须使用回调的方式在里面自己定义

    OnCreateViewHolder用来给rv创建缓存的,在这里对每一个view进行监听view.setOnClickListener(this)

    
    

    onBindViewHolder给缓存控件设置数据,在里面设置样式中的数据

    public void onBindViewHolder(MyAdapter.MyHolder holder, int position) {
    String item = list.get(position);
    holder.textView.setText(item);
    holder.icon.setImageResource(R.mipmap.ic_launcher);
    holder.itemView.setTag(position);
    }
    getItemCount

    getItemCount获取记录数

    public int getItemCount() {
    return list.size();
    }

    RecyclerView必须自己定义一个ViewHolder用来得到样式中的控键

    public class MyHolder extends RecyclerView.ViewHolder {
    public ImageView icon;
    public TextView textView;

    //实现的方法
    public MyHolder(View itemView) {
    super(itemView);
    icon = (ImageView) itemView.findViewById(R.id.item_iv_icon);
    textView = (TextView) itemView.findViewById(R.id.item_tv_title);
    }
    }

    下面是实现点击事件的方法


    //点击事件设置
    @Override
    public void onClick(View view) {
    if(itemClickListener!=null){
    itemClickListener.onItemClick((Integer) view.getTag());
    }
    }
    //接口设置
    public void setItemClickListener(OnItemClickListener itemClickListener){
    this.itemClickListener = itemClickListener;
    }

    //自定义点击接口
    public interface OnItemClickListener {
    void onItemClick(int tag);
    }

    可以得到效果:

     

     

    demo github地址:https://github.com/tempest1/RecyclerTest

  • 相关阅读:
    svn hooks post-commit钩子自动部署
    curl post数据
    php 操作提示框
    php分页类 可直接调用
    微信web端生成支付二维码
    php 数据库类
    虚拟机中的CentOS 7设置固定IP连接最理想的配置
    多并发时支付如何保持账户余额的一致性?
    Spring核心机制:依赖注入
    .net 系列:并发编程之一【并发编程的初步理论】
  • 原文地址:https://www.cnblogs.com/kkrs/p/8612708.html
Copyright © 2011-2022 走看看