listView添加多个不同的adapter

  次阅读 作者:智能小宝 来源:互联网 2015-11-27 13:59 我要评论(0)

有时候我们想在listView上分类,或者呢 有时候一行显示两列内容,有时候需要三列内容 ,那怎么实现呢,这里呢就要使用

Java代码

class Section {

String caption;

Adapter adapter;

Section(String caption, Adapter adapter) {

this.caption=caption;

this.adapter=adapter;

}

}

自定义一个类,这个类呢包含多个adapter就可以了,想用那种就用那种。

Java代码

abstract public class SectionedAdapter extends BaseAdapter {

abstract protected View getHeaderView(String caption,int index,View convertView,ViewGroup parent);

private List<Section> sections=new ArrayList<Section>();

private static int TYPE_SECTION_HEADER=0;

public SectionedAdapter() {

super();

}

public void addSection(String caption, Adapter adapter) {

sections.add(new Section(caption, adapter));

}

public Object getItem(int position) {

for (Section section : this.sections) {

if (position==0) {

return(section);

}

int size=section.adapter.getCount()+1;

if (position<size) {

return(section.adapter.getItem(position-1));

}

position-=size;

}

return(null);

}

public int getCount() {

int total=0;

for (Section section : this.sections) {

total+=section.adapter.getCount()+1; // add one for header

}

return(total);

}

public int getViewTypeCount() {

int total=1;// one for the header, plus those from sections

for (Section section : this.sections) {

total+=section.adapter.getViewTypeCount();

}

return(total);

}

public int getItemViewType(int position) {

int typeOffset=TYPE_SECTION_HEADER+1;// start counting from here

for (Section section : this.sections) {

if (position==0) {

return(TYPE_SECTION_HEADER);

}

int size=section.adapter.getCount()+1;

if (position<size) {

return(typeOffset+section.adapter.getItemViewType(position-1));

}

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...