Android RecyclerView 用来替代传统的ListView

要在Android Studio 中使用RecyclerView 首先要依赖相应的包

右键项目--->Open Module Settings---->Dependecies--->添加com.android.support:recycleview

  1. package com.example.tanjin.learnrec;
  2.  
  3. import android.support.v7.app.ActionBarActivity;
  4. import android.os.Bundle;
  5. import android.support.v7.widget.LinearLayoutManager;
  6. import android.support.v7.widget.RecyclerView;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.TextView;
  10.  
  11. public class MainActivity extends ActionBarActivity {
  12. private RecyclerView rv;
  13.  
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17.  
  18. rv = new RecyclerView(this);
  19.  
  20. setContentView(rv);
  21.  
  22. rv.setLayoutManager(new LinearLayoutManager(this));
  23.  
  24. rv.setAdapter(new RecyclerView.Adapter() {
  25.  
  26. class ViewHolder extends RecyclerView.ViewHolder
  27. {
  28. private TextView tv;
  29. public ViewHolder(View itemView)
  30. {
  31. super(itemView);
  32. tv = (TextView)itemView;
  33. }
  34.  
  35. public TextView getTv()
  36. {
  37. return tv;
  38. }
  39.  
  40. }
  41.  
  42. @Override
  43. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  44. return new ViewHolder(new TextView(viewGroup.getContext()));
  45.  
  46. }
  47.  
  48. @Override
  49. public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
  50. ViewHolder vh = (ViewHolder)viewHolder;
  51. vh.getTv().setText("item"+i);
  52.  
  53. }
  54.  
  55. @Override
  56. public int getItemCount() {
  57. return 1000;
  58. }
  59. });
  60.  
  61. }
  62.  
  63. }

效果:

可以上下滑动

接下来,用一个数组来实现RecycleView

增加一个字符串数组

  1. private String[] data = new String[]{"Hello","Android"};

更改onBindViewHolder方法和getItemCount方法

  1. public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int i) {
  2. ViewHolder vh = (ViewHolder)viewHolder;
  3. vh.getTv().setText(data[i]);
  4. }
  1. public int getItemCount() {
  2. return data.length;
  3. }

再次运行

由以上可知,使用RecyclerView的重点在设置Adapter

onCreateViewHolder 即创建ViewHolder

onBindViewHolder 即绑定ViewHolder,设置ViewHolder里面的View

getItemCount 返回列表一共有多少项

Android RecycleView的更多相关文章

  1. [Android] Android RecycleView和ListView 自定义Adapter封装类

    在网上查看了很多对应 Android RecycleView和ListView 自定义Adapter封装类 的文章,主要存在几个问题: 一).网上代码一大抄,复制来复制去,大部分都运行不起来,或者 格 ...

  2. android recycleview 中禁止多点触发

    int currentapiVersion = android.os.Build.VERSION.SDK_INT; if (currentapiVersion >= android.os.Bui ...

  3. Android RecycleView + CardView 控件简析

    今天使用了V7包加入的RecycleView 和 CardView,写篇简析. 先上效果图: 原理图: 这是RecycleView的工作原理: 1.LayoutManager用来处理RecycleVi ...

  4. android RecycleView Adapter简单封装

    早些时候我们使用系统提供个的BaseAdapter的时候为了满足大家的需要,我们总会对BaseAdapter做一层上层的封装,然后对于实际业务我们只需要关心getView里面的View即可,是代码可读 ...

  5. Android RecycleView多种布局实现(工厂模式)

    RecycleView是个很常用的控件,很多APP中都可以看到它的身影,同时它也是个很难用的控件,主要就难在多种布局的实现. 在<第一行代码—Android>这本书里边有个RecycleV ...

  6. Android RecycleView 自定义Item的使用

    自定义布局的RecycleView需要自己实现Adapter,ViewHolder和布局: 自定义Adapter继承RecycleView.Adapter,重写getItemCount(),onBin ...

  7. Android RecycleView实现混合Item布局

    首先来看看效果吧: 效果预览.png 本实例来自于慕课网的视屏http://www.imooc.com/video/13046,实现步骤可以自己去观看视屏,这里只记录了下实现的代码. 添加依赖: (1 ...

  8. android RecycleView复杂多条目的布局

    用RecycleView来实现布局形式.默认仅仅能指定一种布局格式.可是实际中我们的布局常常会用到多种类型的布局方式.怎样实现呢? 今天来说下经常使用的2钟方式. 第一种: 通过自己定义addHead ...

  9. Android RecycleView添加HeaderView宽度不能撑满屏幕问题

    下午做项目的时候,碰到页面布局需要使用RecycleView加HeaderView,本以为很简单东西,却有一个小小的坑:HeaderView布局的宽度不能撑满屏幕! 先看下出现问题的图: 天了噜,我写 ...

随机推荐

  1. Phone numbers

    Phone number in Berland is a sequence of n digits. Often, to make it easier to memorize the number, ...

  2. hashmap&linkedlist

    import java.util.HashMap; import java.util.Iterator; public class hashmap1 { public static void main ...

  3. 使用Snapdragon Profiler工具分析

    http://blog.csdn.net/cgx090902/article/details/73849202 Snapdragon Profiler(骁龙分析器)是一款性能分析软件,在Windows ...

  4. 我的ubuntu新系统自动装软件脚本

    装一些常用软件 配一下环境变量 #!/bin/bash #download g++sudo apt-get install g++ -y#download codeblockssudo apt-get ...

  5. 模块化方案esl以及amd的依赖方式

    来自AMD设计思想的总结和思考 在之前了解es6模块化的时候有遇到过依赖循环的问题,在es6中对于模块是引用性的,而当时于es6模块化做对比的commonjs(CMD规范)对于模块是值类型(会将其缓存 ...

  6. MongoDB优化之一:常见优化方法

    常用性能优化方案 创建索引 限定返回结果数 只查询使用到的字段 采用capped collection 采用Server Side Code Execution 使用Hint,强制使用索引 Hint ...

  7. [置顶] 制作开机LOGO就是这么简单!

    转自: http://mp.weixin.qq.com/s?__biz=MzAxNTAyOTczMw==&mid=2649328522&idx=1&sn=64107695fef ...

  8. 2015.9.28 不能将多个项传入“Microsoft.Build.Framework.ITaskItem”类型的参数 问题解决

    方法是:项目->属性->安全性->启用ClickOnce安全设置, 把这个复选框前面的勾去掉就可以了.

  9. 第四章 Javac编译原理(待续)

    Javac是什么 Javac编译器的基本结构 Javac工作原理分析 设计模式解析之访问者模式

  10. java常用八大排序法

    最近查资料发现java排序挺有意思的,其中包含常见八种具有代表性的排序法:笔者觉得排序的功能重要,但更重要的是排序的思想:所以简单叙述一下常见排序方法名称,并用代码举例. A.插入排序(直接插入排序. ...