效果

这里讲的是第二个button跳转的Activity,这里和上一篇不同之处在于可以item点击、item子控件点击

继承BaseAdapter

同样也要继承BaseAdapter

public class ADUadapter extends BaseAdapter<ChatModel> {
public Context context;
protected ADUholder holder; public ADUadapter(Context context) {
super();
this.context = context;
} @Override
protected void setItemChildListener(BaseViewHolder viewHolder) {
super.setItemChildListener(viewHolder);
if (viewHolder instanceof ADUholder){
ADUholder adUholder = (ADUholder) viewHolder;
baseViewHolderHelper.setItemChildClickListener(adUholder.imageView);
}
} @Override
protected BaseViewHolder addViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false);
return new ADUholder(view);
} @Override
protected void fillData(RecyclerView.ViewHolder holder, final int position, final ChatModel item) {
this.holder = (ADUholder) holder;
this.holder.title.setText(item.name);
this.holder.name.setText(item.mMsg);
}
}

重写setItemChildListener()

这里可以实现item子控件的点击效果,我们仅仅需要baseViewHolderHelper.setItemChildClickListener(adUholder.imageView);这里的参数就是我们让该控件实现点击效果。

在Activity中实现GIF中的效果

实现item点击效果

adUadapter.setOnItemClickListener(new BaseViewHolder.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Toast.makeText(UpdataItemActivity.this, "position: " + position, Toast.LENGTH_SHORT).show();
}
});

实现item长按效果

adUadapter.setOnLongItemClickListener(new BaseViewHolder.OnLongItemClickListener() {
@Override
public boolean onLongItemClick(View view, int position) {
String title = adUadapter.getItem(position).name;
Toast.makeText(UpdataItemActivity.this, title + ",position: " + position, Toast.LENGTH_SHORT).show();
return true;
}
});

实现item子控件点击效果

adUadapter.setOnChildItemClickListener(new BaseViewHolderHelper.OnChildItemClickListener() {
@Override
public void onChildItemClick(View view, int position) {
String title = adUadapter.getItem(position).name;
Toast.makeText(UpdataItemActivity.this, title + ",你点了图片,position: " + position, Toast.LENGTH_SHORT).show();
}
});

实现item点击或不可点击切换

rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
if (i == R.id.radioButton) {
adUadapter.getViewHolder().setItemable(true, true);
} else if (i == R.id.radioButton2) {
adUadapter.getViewHolder().setItemable(false, false);
}
}
});

好了,在此附上github源码,喜欢的请start、fork。 https://github.com/DyncKathline/TestRecyclerView

转载请注明出处,谢谢!

实现RecycleView动态使列表item可以点击或不可点击切换的更多相关文章

  1. AngularJS学习笔记(2)——与用户交互的动态清单列表

    与用户交互的动态清单列表 以我之前写的一个清单列表页面作为例子(MVC模式的清单列表效果),优化前代码如下: <!DOCTYPE html> <html ng-app="t ...

  2. jquery动态添加列表后样式失效解决方式

    最近在做一个通讯录,使用jquery mobile方式来做,在动态添加列表后,listview原有的样式失效,折腾一会,找出解决办法.代码如下. <%@ page language=" ...

  3. Android-自定义仿QQ列表Item滑动

    效果图: 布局中去指定自定义FrameLayout: <!-- 自定义仿QQ列表Item滑动 --> <view.custom.shangguigucustomview.MyCust ...

  4. HTML5+中动态构建列表并填充数据

    部分代码参考demo----<历史上的今天>. 感谢作者的分享,愿好人一生平安,虽然只有两个页面,但是通过这个示例让我学会了5+中如何动态构建列表并填充数据,非常实用. html部分: & ...

  5. swift派发机制的核心是确定一个函数能否进入动态派发列表

    swift派发机制的核心是确定一个函数能否进入动态派发列表

  6. Android MaoZhuaWeiBo 好友动态信息列表数据抓取 -3

    前面2篇把大致的开发说的几乎相同了,接下来说说粉丝动态消息列表或时间线数据的抓取与解析显示,我将他所有写在了一个 类里.并以封装类对象的形式存储数据.以下看看基本的服务代码: 粉丝动态消息列表数据抓取 ...

  7. Delphi - cxGrid字段类型设定为ComboBox 并实现动态加载Item

    cxGrid设定字段类型为ComboBox 在cxGrid中选中需要设定的字段: 单击F11调出属性控制面板,在Properties下拉选项中选中ComboBox,完成字段类型的设定. cxGrid ...

  8. Make a List View Editable 使列表视图可编辑

    In this lesson, you will learn how to make a List View editable. For this purpose, the DemoTask List ...

  9. 【Web】实现动态文章列表

    简单记录 -慕课网- 步骤二:动态文章列表效果 实现这个 一个网页中常见的文章列表效果. 怎么实现文章列表案例 分解一波,CSS来改变样式 标题标签 HTML的无序列表 去掉项目符号 符号所占空间 列 ...

随机推荐

  1. c# gzip解压缩

                , bytes.Length)) > )             {                line =  System.Text.Encoding.Defaul ...

  2. 中国首个 SaaS 模式的云告警平台 iOS 版 APP 上线

    今天上午,国内首个 SaaS 模式的云告警平台 OneAlert 正式发布 ios 版 APP,每个 ios 用户,无需电脑,都可以通过手机全程跟踪所有告警,并且可以和每一个成员一键式电话沟通,团队协 ...

  3. 微信JSSDK录音的一些bug

    UPDATE: 这篇博文已经过期, 新的BUG总结请看微信JSSDK与录音相关的坑 微信JSSDK有不少坑, 最近做一个webapp, 用到了其中的录音功能, 发现不少问题, 总结一下: 当你调用st ...

  4. dll的加载方式主要分为两大类,显式和隐式链接

    之前简单写过如何创建lib和dll文件及简单的使用(http://blog.csdn.net/betabin/article/details/7239200).现在先再深入点写写dll的加载方式. d ...

  5. Oracle core02_数据块

    数据更改 oracle core完成了oracle的核心功能,recovery,读一致性等. 深入的了解oracle的机制,就从一个最简单的更新开始.对于oracle来说,最大的一个特性就是写了两次数 ...

  6. Android Loader详解一:概述

    装载器从android3.0开始引进.它使得在activity或fragment中异步加载数据变得简单.装载器具有如下特性: 它们对每个Activity和Fragment都有效. 他们提供了异步加载数 ...

  7. (转载)在mysql中,column 'id' in field list is ambiguous

    (转载)http://blog.chinaunix.net/uid-20665047-id-3137284.html column 'id' in field list is ambiguous 这个 ...

  8. 去掉有序数组中重复数字 原地 leetcode java (最简单的方法)

    1.利用荷兰国旗的思路,每次记住最后一个位置,遇到一个不重复的数,放在它后面,代码很简单. Given a sorted array, remove the duplicates in place s ...

  9. zz android 系统 makefile文件(Android.mk)组织结构

    Android.mk脚本结构 下面是main.mk文件包含关系,本文档主要说明的就是这些文件里到底做了什么.(这个文件被根目录下的makefile文件包含) 一.     main.mk 1.检查版本 ...

  10. HW4.20

    public class Solution { public static void main(String[] args) { boolean isPrime = true; int count = ...