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

前言

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值