Android之ListView的getItemViewType和getViewTypeCount

本文介绍了Android ListView中实现复杂列表时,getItemViewType和getViewTypeCount两个方法的重要性和用法。通过实例说明如何处理不同类型的Item,并强调了定义Item类型时需从0开始递增以避免数组越界异常。还提到了ListView的复用机制和避免复用问题的方法。
摘要由CSDN通过智能技术生成

PS:感觉这两个方法其实还是很容易理解的,也算是给我其他两个朋友写的吧,帮他们搞清楚这两个方法的用法和概念。同时还有一些小细节问题需要注意。

 

学习内容:

1.getItemViewType和getViewTypeCount

  getItemViewType和getViewTypeCount是ListView中实现复杂列表的两个相关的方法,普通的ListView中Item是相同的,那么我们只需要实现Adapter中四个抽象方法即可,但是如果页面中Item长得比较的复杂呢?比如说这个。

 

  比如说这个列表项,其实也不是很复杂,这种类型的Item也有其他的实现方式,比如说在Adapter中实现SectionIndexer也是可以实现的,但是我们就拿这个来说明一下问题,如果一个Item第一种类型是TextView,第二种类型是ImageView+Button+TextView呢,那么这样复杂的列表我们就需要使用getItemViewType()和getTypeViewCount()两个方法去实现了。这两个方法理解起来还是比较容易的,获取Item中Type的类型以及Item中Type的相关数量。废话就不多说了,直接说实现方式。

复制代码

public class ListAdapter extends BaseAdapter {

    /**
     * Item类型,int值.必须从0开始依次递增.
     * */
    private static final int TYPE_TITLE = 0;
    private static final int TYPE_CONTENT = 1;

    /**
     * Item Type 的数量
     * */
    private static final int TYPE_ITEM_COUNT = 2;

    /**
     * 数据
     * */
    private List<Company> mData = new ArrayList<>();
    private Context context;



    public ListAdapter(Context context,List<Company>mData){
        this.context = context;
        this.mData = mData;
    }


    @Override
    public int getCount() {
        return mData.size();
    }

    @Override
    public Object getItem(int position) {
        return mData.get(position);
    }

    @Override
    public long getItemId(int position) {
        return p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值