listview支持多种item显示处理

无需再为了一个简单的listview item显示,然后新建这个adapter,新建那个apapter

在这里只需要一个adapter就可搞定一般情况的item显示问题,ps:一般情况,复杂的不纳入范围内


先说说要怎么做,主要是分以下几步

1:新建Item的复用类Holder;

2:新建bean类,然后跟Holder关联起来

3:拥有一个List<bean>对象,然后一行代码setAdapter



具体分单重类型的Item跟多种类型Item(listview当中显示不同item的需求还是蛮多的)


先说说单种item的情况

1:新建Holder

public class AbcdH extends INormalHolder<AbcdBean> { //这里需要继承INorMalHolder,并且泛型里边是Bean
    public AbcdH(Context ctx) {
        super(ctx);
        layout = R.layout.jpadapt_item_r_layout;  //这里是你这个Item的布局layout
    }

    @Override
    public void initView(View view) { //这里就是初始化控件的,findviewid等操作

    }

    @Override
    public void setData(AbcdBean abcdBean) {
        super.setData(abcdBean);//一定要super;这里是setText的
    }
}


2:新建Bean类

@NormalH(holderName =AbcdH.class)//注解关联复用类
public class AbcdBean {

}


3: 
BaseAdapter ada = new NormalAdapter<>(list, mActivity);
listView.setAdapter(ada);
 

ok这样就完成了

多种类型的如下

1:还是新建item复用类,既然是多种的,所以这里就需要新建2个或以上Holder,

取决于你有多少个不用的itme

public class AbcdRightH extends IManyHolder<AbcdBean> { //跟单个的一样,也是要关联bean,但是是继承IManyHolder
    public AbcdRightH(Context ctx) {
        super(ctx);
        layout = R.layout.jpadapt_item_r_layout;    //对应的layout布局
    }

    @Override
    public void initView(View view) { //同上

    }
}


public class AbcdLeftH extends IManyHolder<AbcdBean> { //跟单个的一样,也是要关联bean,但是是继承IManyHolder
    public AbcdRightH(Context ctx) {
        super(ctx);
        layout = R.layout.jpadapt_item_l_layout;    //对应的layout布局
    }

    @Override
    public void initView(View view) { //同上

    }
}

2:新建bean类

@ManyH(holders ={AbcdLeftH.class,AbcdRightH.class})//当是多种类型的时候,所对应的Holder,0代表显示LeftH,1:代表显示RightH
public class AbcdBean {
  @TypeH//代表是那个布局类型的,为int型 这里如果为0:那么表示是属于LeftH的,如果为1:表示是输入RightH 依次类推
    private int type;

    //  set get  type方法
}



3

BaseAdapter ada = new ManyAdapter<>(list, mActivity);
listView.setAdapter(ada);

跟单个的一样,只是改成ManyAdapter而已


附上一个aar文件,直接引进去即可,至于怎么引入aar,另行百度

戳我下载aar文件




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值