实现RecycleView动态使列表item可以点击或不可点击切换
效果
这里讲的是第二个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可以点击或不可点击切换的更多相关文章
- AngularJS学习笔记(2)——与用户交互的动态清单列表
与用户交互的动态清单列表 以我之前写的一个清单列表页面作为例子(MVC模式的清单列表效果),优化前代码如下: <!DOCTYPE html> <html ng-app="t ...
- jquery动态添加列表后样式失效解决方式
最近在做一个通讯录,使用jquery mobile方式来做,在动态添加列表后,listview原有的样式失效,折腾一会,找出解决办法.代码如下. <%@ page language=" ...
- Android-自定义仿QQ列表Item滑动
效果图: 布局中去指定自定义FrameLayout: <!-- 自定义仿QQ列表Item滑动 --> <view.custom.shangguigucustomview.MyCust ...
- HTML5+中动态构建列表并填充数据
部分代码参考demo----<历史上的今天>. 感谢作者的分享,愿好人一生平安,虽然只有两个页面,但是通过这个示例让我学会了5+中如何动态构建列表并填充数据,非常实用. html部分: & ...
- swift派发机制的核心是确定一个函数能否进入动态派发列表
swift派发机制的核心是确定一个函数能否进入动态派发列表
- Android MaoZhuaWeiBo 好友动态信息列表数据抓取 -3
前面2篇把大致的开发说的几乎相同了,接下来说说粉丝动态消息列表或时间线数据的抓取与解析显示,我将他所有写在了一个 类里.并以封装类对象的形式存储数据.以下看看基本的服务代码: 粉丝动态消息列表数据抓取 ...
- Delphi - cxGrid字段类型设定为ComboBox 并实现动态加载Item
cxGrid设定字段类型为ComboBox 在cxGrid中选中需要设定的字段: 单击F11调出属性控制面板,在Properties下拉选项中选中ComboBox,完成字段类型的设定. cxGrid ...
- Make a List View Editable 使列表视图可编辑
In this lesson, you will learn how to make a List View editable. For this purpose, the DemoTask List ...
- 【Web】实现动态文章列表
简单记录 -慕课网- 步骤二:动态文章列表效果 实现这个 一个网页中常见的文章列表效果. 怎么实现文章列表案例 分解一波,CSS来改变样式 标题标签 HTML的无序列表 去掉项目符号 符号所占空间 列 ...
随机推荐
- ASP.NET之HttpModule拦截404异常
Httpmodule代码: public class Error404Module : IHttpModule { public void Init(HttpApplication context) ...
- Android 你应该知道的学习资源 进阶之路贵在坚持
1.国外教程网站 Android Developers Blog 不解释 vogella 很不错的网站,免费的,包含android的教程也比较全面,并且教程中经常引用大牛blog,会有很多意外发现.代 ...
- android使用tabhost实现导航
参考 http://blog.csdn.net/xixinyan/article/details/6771341 http://blog.sina.com.cn/s/blog_6b04c8eb0101 ...
- android Button 颜色的变化(点击,放开,点击不放)
参考: http://endual.iteye.com/blog/1534258 总结: 定义res/drawable/button_style.xml文件 <?xml version=&quo ...
- AS 学习笔记 for in 和 for each in
for in 的速度比 for each in 慢很多倍 ~~ var myArray:Array = new Array(); myArray["a"] = "zer ...
- xcode5.1 armv7 armv7s arm64 类型, 区分, 概念等
官方: https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaTouch64BitGuide/In ...
- ELK安装配置及nginx日志分析
一.ELK简介1.组成ELK是Elasticsearch.Logstash.Kibana三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合使用,而且又都先后归于 Elastic.co 公司名 ...
- Http 状态码完整说明
在网站建设的实际应用中,容易出现很多小小的失误,就像mysql当初优化不到位,影响整体网站的浏览效果一样,其实,网站的常规http状态码的表现也是一样, 一些常见的状态码为: 200 - 服务器成功返 ...
- Delphi TdxBarDockControl 用法
1.放个TdxBarManager在窗体上2.放个TdxBarDockControl在panel上,把它的BarManager属性设置为dxBarManager13.双击dxBarManager1,新 ...
- HDU-2539 点球大战
点球大战 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...