Android github开源项目学习之—仿知乎APP(一)
来源:互联网 发布:足球鞋 知乎 编辑:程序博客网 时间:2024/06/06 18:27
前言
(本人菜鸟,如有错误请指正)
一直奇怪网上说的Recycler让自己定制点击事件是怎么回事,看了这个大牛的仿知乎 Android客户端源码才知道,他是这样做的—- 写了一个RecyclerView的ViewHolder并且让它实现Onclicklistenner 然后在ViewHolder内部定义了一个ClickResponseListener接口,然后在构造函数里面接收到new 出来的ClickResponseListener接口,然后为item设置OnclickListener时回调ClickResponseListener的方法,来看看大牛具体是怎么做的:
public CardViewHolder(View v, ClickResponseListener clickResponseListener) { super(v); //得到外部传递进来的点击事件处理对象,后面onclick中回调它 this.mClickResponseListener = clickResponseListener; //.................................略 overflow = (ImageView) v.findViewById(R.id.card_share_overflow); v.setOnClickListener(this); overflow.setOnClickListener(this); } 点击时,回调mClickResponseListener的方法 @Override public void onClick(View v) { if (v == overflow) { mClickResponseListener.onOverflowClick(v, getAdapterPosition()); } else { mClickResponseListener.onWholeClick(getAdapterPosition()); } } //ClickResponseListener 的定义 public interface ClickResponseListener { void onWholeClick(int position); void onOverflowClick(View v, int position); }
这样就可以了 而且这样还可以把 itemView和itemView里面的子View的点击事件的分离。
它的字符串缓存是这样做的,每次异步任务加载完成之后都把字符串缓变成Json存到数据库,day是主键,每次取出的时候都用day去取出,然后刷新Adapter。
一般加载缓存数据是在 Fragment对用户可见的时候加载的,在oAttach和下拉刷新的时候去网络加载图片并缓存到数据库。
好暂时分析到这,主要想看看一般字符串缓存应该怎么做,好像还有一个叫ASimpleCache的缓存,回来去看看。大牛不愧是大牛,写的代码很耐读。
0 1
- Android github开源项目学习之—仿知乎APP(一)
- Github上最火的Android开源项目(一)
- GitHub 优秀的 Android 开源项目(一)
- GitHub上最火的Android开源项目(一)
- GitHub上最火的Android开源项目(一)
- github 开源项目之face_recognition学习
- android开源项目学习之(一)--ActionBarSherlock
- Github项目解析(一)-->上传Android项目至github
- github项目解析(一)-->上传android项目至github
- Github项目解析(一)-->上传Android项目至github
- [Android入门]从零构建Android app之天气——2.托管项目到GitHub
- Github-Client(ANDROID)开源之旅(一) ------ 初探GitHub
- Github-Client(ANDROID)开源之旅(一) ------ 初探GitHub
- Github-Client(ANDROID)开源之旅(一) ------ 初探GitHub
- GitHub优秀的Android 开源项目(一)
- Android最火的GitHub开源项目(一).
- GitHub优秀的Android 开源项目(一)
- 我学习过的Android GitHub开源项目
- SQL优化原则
- AAC文件格式详解
- JDK介绍 && linux下JDK 环境变量设置
- 求一个整数的质因数
- maven 程序包org.junit不存在
- Android github开源项目学习之—仿知乎APP(一)
- Android 使用CheckBox实现ListView自定义单选
- WebService报错:org.apache.cxf.interceptor.Fault: No such operation
- 自定义方法copy数组 和 Java类库对数组复制的支持
- 无边框Button(WPF)
- ssh导入excel
- 【程序8】 求s=a+aa+aaa+aaaa+aa...a的值
- ActiveMQ学习笔记(6)——JMS消息类型
- Zxing 实现二维码的生成方法