文档章节

个人总结之RecyclerView

Magic_锋
 Magic_锋
发布于 2016/02/29 15:35
字数 478
阅读 160
收藏 2
点赞 1
评论 0

     RecycleView是V7包下的,可以说是ListView的升级版,因为ListView是不支持横向滑动,而RecycleView既支持横向也支持纵向滑动,使用很方便,但是有一点坑爹的就是没有条目的点击事件,需要我们自己来写

    首先Activity的布局如下:

    

    Item的布局我只是用一个简单的TextView来写的,所以就不传图了;

    然后在Activity中的onCreat方法中,获取到RecyclerView控件,然后设定Layout管理器

    RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.rec);

    

    当然这里的setOrientation也可以设置为horizontal的,这样就是横向的

    MyAdaper就是适配器,他要继承的是RecyclerView.Adaper,主要重写里面的onCreatViewHolder(),onBindViewHolder(),getItemCount()这三个方法,

    onCreatViewHolder()就是创建ViewHolder

    onBindViewHolder()就是绑定ViewHolder,和数据绑定

    getItemCount()就是获取总的条目数

private class MyAdapter extends RecyclerView.Adapter {
    @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(getBaseContext()).inflate(R.layout.item, null);
    Holder holder = new Holder(view);
    return holder;
}

    @Override
public void onBindViewHolder( RecyclerView.ViewHolder holder, final int position) {
    final Holder h = (Holder) holder;
     h.setData(position);
}

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

class Holder extends RecyclerView.ViewHolder {
    TextView mtv;

    public Holder(View view) {
        super(view);
        mtv = (TextView) view.findViewById(R.id.tv);
    }

    public void setData(int position) {
        mtv.setText(list.get(position).getName());
    }
}

这样就可以了,但是有一点就是item没有条目点击事件,如果想要用的话,我们只能自己来写个接口了,因为我的适配器是写在Activity中的,也就是和OnCreat()在一个类中,所以如下:

    首先在全局中写个接口

public interface  onItemClickListener{
    void onItemClick(View vi,int position);
}

    然后在适配器MyAdapter中

private onItemClickListener mOnItem;

public void onItemClickListener(onItemClickListener mOnItemClickListener){
    this.mOnItem = mOnItemClickListener;
}

    然后在onBindViewHolder()方法

@Override
public void onBindViewHolder( RecyclerView.ViewHolder holder, final int position) {
    final Holder h = (Holder) holder;
     h.setData(position);

    if(mOnItem != null){
      h.mtv.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
                mOnItem.onItemClick(h.mtv,position);
          }
      });
    }
}

这就可以了,用的话在new 出适配器的时候设置点击事件

MyAdapter myAdapter = new MyAdapter();
    myAdapter.onItemClickListener(new onItemClickListener() {
        @Override
        public void onItemClick(View vi, int position) {
            Toast.makeText(Priactise.this, "这是" + position, Toast.LENGTH_SHORT).show();
        }
    });
mRecycle.setAdapter(myAdapter);


© 著作权归作者所有

共有 人打赏支持
Magic_锋
粉丝 0
博文 51
码字总数 30535
作品 0
东城
程序员
《android recyclerview的简单使用》

首先是主要布局 <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/swipeRefreshLayout"android:layoutwidth="m......

吕檀溪
2015/09/22
308
0
安卓ScrollView嵌套RecyclerView,GridView,ViewPager冲突解决

如题,就把项目中常见的这几个冲突总结下吧,记性不太好,还是写下来好了。 ScrollView嵌套RecyclerView 滑动不流畅冲突:在RecyclerView属性中加入 使recyclerview的滑动跟随scrollveiw sc...

深情不及酒伴
2017/09/04
0
0
RecyclerView的两种加载更多的写法比较

关于RecyclerView的加载更多(重写RecyclerView.OnScrollListener),网上普遍有两种写法,来分析下两种写法的优劣: 第一种,代码如下,这种方法的原理是当RecyclerView持有的Item数量减去可见的I...

fantasiter
2016/06/30
32
0
Android studio 导入依赖库

用android studio new 一个demo时用到RecyclerView,先在xml中引入support v7包的RecyclerView,发现没有找到对应的RecyclerView,然后研究了下需要导入recyclerview-v7包 android studio新建...

wongstar
2017/12/13
0
0
Android酷炫动画效果

Android自定义View:一个精致的打钩小动画 一个精致的打钩动画。 Android 自定义水平进度条圆角进度 项目中实现进度条进度过程中显示圆角样式 ViewPager系列之 仿魅族应用的广告BannerView ...

掘金官方
2017/12/19
0
0
[译]Workcation App – 第三部分. 带有动画的标记(Animated Markers) 与 RecyclerView 的互动

原文地址:Workcation App – Part 3. RecyclerView interaction with Animated Markers 原文作者:Mariusz Brona 译文出自:掘金翻译计划 译者:龙骑将杨影枫 校对者:Vivienmm、张拭心 Wo...

龙骑将杨影枫
2017/06/05
0
0
Recycleview notifyDataSetChanged()方法调用出现IllegalStateException 问题的解决

关于Android Recycleview notifyDataSetChanged()方法调用出IllegalStateException 问题的解决。 最近写代码使用到了recyclerview,其中界面有一个Checkbox的点击,点击之后是需要刷新界面的相...

博为峰教研组
2016/11/08
210
0
RecyclerView使用总结-------上

前言 学习使用RecyclerView也有一段时间,一直都没有时间做个总结,就抽空想把RecyclerView的一些使用方法总结出来,方便大家也方便自己查阅。 简介 RecyclerView是support.v7包中的控件,可...

CaostGrace
05/15
0
0
ViewPager,ScrollView 嵌套ViewPager滑动冲突解决

ViewPager,ScrollView 嵌套ViewPager滑动冲突解决 这篇博客主要讲解一下几个问题 粗略地介绍一下View的事件分发机制 解决事件滑动冲突的思路及方法 ScrollView 里面嵌套ViewPager导致的滑动...

丁佳辉
01/12
0
0
【Android】RecyclerView

RecyclerView RecyclerView简明 RecyclerView 在v7.21+包中,是一个用来展示大量数据的组件,或者说,就是ListView的改善版本(注:现阶段的功能没有ListView完善,因此想完全取代ListView的...

xesam
2014/12/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
54分钟前
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部