前言

(本人菜鸟,如有错误请指正)

一直奇怪网上说的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的缓存,回来去看看。大牛不愧是大牛,写的代码很耐读。

android 如何学习开源项目,Android github开源项目学习之—仿知乎APP(一)相关推荐

  1. github android 开源,Android github开源项目学习之—仿知乎APP(一)

    前言 (本人菜鸟,如有错误请指正) 一直奇怪网上说的Recycler让自己定制点击事件是怎么回事,看了这个大牛的仿知乎 Android客户端源码才知道,他是这样做的-- 写了一个RecyclerVie ...

  2. 一般项目中哪里体现了数据结构_优秀程序员都应该学习的数据结构与算法项目(GitHub 开源清单)...

    前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 强烈推荐 GitHub 上值得前端学习的数据结构与算法项目,包含 gif ...

  3. Android 使用Toolbar+DrawerLayout快速实现仿“知乎APP”侧滑导航效果

    在以前,做策划导航的时候,最常用的组件便是SlidingMenu了,当初第一次用它的时候觉得那个惊艳啊,体验可以说是非常棒. 后来,Android自己推出了一个可以实现策划导航的组件DrawerLay ...

  4. 1、eclipse 使用git提交项目至github进行项目托管

    1.登录github创建仓库 2.eclipse 选中要上传的项目,创建本地仓库 3.finish之后,整个项目的效果为: 1.项目文件夹内多了.git文件夹,该文件夹为该项目的本地仓库,用于管理版本 ...

  5. 从0到1编写个人博客项目使用springboot+vue(前后端分离) 到 购买服务器上传项目 到 GitHub开源项目、此过程下所遇问题及解决方法,至少你帮你少走70%弯路

    个人博客编写 后记 2022.12.2.4 : 30.此项目告一段落. ​ 编撰此博客本意里除去对找工作的帮助.更多地是想帮助未走过的人去探探路.总结经验.少走弯路.知识的宝贵不在于无价.而是无私.天 ...

  6. 上传自己的项目到Github开源的步骤

    首先你要下载好git,这个百度直接搜官网下载对应的版本就行.比如我的是windows64位 1.然后在github上注册自己的账号:登录Github,找到右上角的图标,打开点进里面的Settings, ...

  7. github上好的c语言项目,2019 github热门项目

    zdog zdog是一款js 3D引擎,zdog不同于其他的js 3D引擎的地方在于所有的API引用全部都是2D绘图,所以zdog项目才会简单,但是高效. 一起来做马里奥吧! craft craft是 ...

  8. [Android开源项目] GitHub开源项目总结 (转)

    [Android开源项目] GitHub开源项目总结 GitHub开源项目android-styled-dialogs http://neast.cn/forum.php?mod=viewthread ...

  9. 【UI学习】Android github开源项目,酷炫自定义控件(View)汇总

    [UI学习]Android github开源项目,酷炫自定义控件(View)汇总 转载  2016年09月04日 23:23:15 3484 近期整理的比较酷炫并且我们会经常用到的custom vie ...

最新文章

  1. 互联网还留给我们这些出路
  2. [zz]libvirt中CPU和内存的细粒度管理机制
  3. adb 测试工作中的总结
  4. ajax中 get 和 post 的区别
  5. 2021-10-27 PTA 数据结构 链表 两个有序链表序列的合并
  6. asp.net 强制性单一登陆现实
  7. android学习笔记30——AndroidMainfest.xml
  8. |NOIOJ|动态规划|8462:大盗阿福
  9. 全栈溯源、mAPM、金融性能、Oracle VS. MySQL:看APM技术专场有哪些干货
  10. 牛客小白月赛8: I. 路灯孤影(区间DP)
  11. 点钞视频软件测试,模拟银行综合实验
  12. eeupdate 更新MAC地址
  13. bartender各个版本下载链接(10.1\2016\2019)
  14. 学计算机物理去戴维斯还是伦斯勒理工学院好,美国大学本科专业排名:应用物理...
  15. DSPE-PEG-Alkyne/CHO 磷脂聚乙二醇炔基/醛基
  16. Android安全:禁止APP录屏和截屏
  17. 服务注册中心之Eureka简介及原理
  18. 这时的我已经激动的连话都说不出来了
  19. ElasticSearch 之 文本搜索
  20. Lua基础:table的几种构造方式

热门文章

  1. ajax放大缩小,vue接入实时视频,并可以控制缩放与上下左右
  2. 电子设计教程43:流水灯电路-非对称式多谐振荡器
  3. 2021年低压电工免费试题及低压电工实操考试视频
  4. 《python数据分析基础》4.1.1:生成的sqlite.db文件的查看
  5. win10系统解决Outlook2007不能记住密码问题
  6. (绝对详细)CenterNet训练自己的数据(pytorch0.4.1)
  7. 13款宝马x5质量到底怎么样_为什么买宝马X5的车主都后悔不已?
  8. 2013 AMC8中文
  9. 为developerWorks展示内容
  10. Trunk扩展集及单臂路由