首先,为什么是RecyclerView?
无疑,RecyclerView比ListView、GridView都要好。另外2个,甚至可以不用学。
其次,为什么要打造通用Adapter?
先谈效果,在没有通用Adapter之前,你需要写一个嵌套了ViewHolder的Adapter。而现在,只需要使用通用的Adapter,在使用的时候,重写一下bind方法即可。大大减少了代码量,提升了重用性。可以说,每个在职的安卓开发人员都应该使用通用的Adapter,节省自己的时间,让自己更专注于其他业务的实现。
最后,为什么要有一个自己的Adapter?
网上有很多万能啊,通用的Adapter。可能实现了很强的功能,但是,出了错,你修改不了jar包、gradle。所以你必须亲手打造一个属于自己的Adapter。每个人的业务需求都不一样,所以,为自己量身定做一个Adapter,可以让你的效率,再度有一个提升。
(其实网上通用的Adapter已经很多了,最著名的是鸿洋的教程,这第一篇和他会大体相似,后面的东西,我保证会一点都不一样(我解耦了JavaBean))
首先弄出一个通用的ViewHolder
仔细回想下,正常的ViewHolder是怎么写的?
static class ViewHolder extends RecyclerView.ViewHolder { TextView textView; public ViewHolder(View view) { super(view); textView = (TextView) view.findViewById(R.id.textView); } }那么我们想使他通用化,应该怎么处理呢?其实上面是一种静态获取,我们需要实现写好。我们只需要使他可以动态获取就可以了。
怎么才能动态获取item view内的子控件呢?我们需要先考虑我们最后想实现的效果是怎样的?
CommonAdapter<String> adapter = new CommonAdapter<String>(this, R.layo