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
原创粉丝点击