Android(无需javabean)的RecyclerView万能适配器,解耦从这里做起

本文探讨了如何在Android中实现一个RecyclerView万能适配器,避免使用javabean,以提高代码的可维护性和解耦。通过使用多个数据类型的列表,如List<String>, List<Bitmap>等,来动态适应业务需求变化。作者分享了自定义ViewHolder和Adapter的实现,并强调每个Android开发者都应该拥有自己的RecyclerView实现,以便于扩展和维护。" 79723273,7351424,SpringMVC Controller返回JSON乱码解决方案,"['SpringMVC', 'json', '字符编码']
摘要由CSDN通过智能技术生成

先介绍下为什么这么做,因为RecyclerView需要一个javabean,同时呢,对于整个系统中的一个对象,也需要建造一个javabean。但是很明显,RecyclerView中的那个bean显然是整个系统中那个对象javabean的子集。所以我觉得不应该专门为RecyclerView设置一个bean,你想要给他什么数据,多传几个集合不就好了?为什么一定要并在一个集合里?所以我认为,javabean反而是最容易忽视,也是最高的耦合度的体现。


本来的List---List<XxxxBean>

现在的List---List<String> List<Bitmap> List<...>

(我觉得下面那种才是健康,更容易维护的形式!!!用户要改需求,增加一个List就可以和一行绑定的代码就可以!!!)


先看一下我的除了通用的ViewHolder和通用的Adapter之外的所有代码

CommonAdapter adapter = new CommonAdapter<String, Bitmap, String, String, String>(this,R.layout.item, stringList, bitmapList, null, null, null) {
    @Override
    protected void convert(CommonViewHolder holder, int position, String s, Bitmap bitmap, String s2, String s3, String s4) {
        ((TextView)((ViewGroup)holder.getItemView()).getChildAt(0)).setText(s);
        ((ImageView)((ViewGroup)holder.getItemView()).getChildAt(1)).setImageBitmap(bitmap);
    }
};

mRv.setAdapter(adapter);
mRv.setLayoutManager(new LinearLayoutManager(this));

这里我就使用了两个数据类型,一个String,一个是Bitmap,后面的泛型不得不指定,就瞎指定了几个(也可以像rxjava写9个类,这样就可以动态指定泛型个数了)。整个流程下来,就是舒服二字!

假如说这是一个聊天系统,用户一开始说,他要的是String类型的,因为只发文本就可以了 。但是他心思变的很快,说,我想要一个通用的消息类型&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值