0

设想-

itemnaem  A
itemnaem  A
itemnaem  B
itemnaem B
itemnaem  B
itemnaem  C
.
.
.
itemnaem  c

我有一个包含 50 个项目的数组列表。在这 50 件物品中,10 件属于 A 类,20 件属于 B 类,其余属于 C 类。

我想膨胀一个列表视图,其中所有类型 A 的项目首先出现,然后是 B 类型,然后是 C 类型。

从数组列表中,我能够将项目分成 3 个不同的列表 A、B 和 C。

但我面临按顺序显示它们的问题。

if(aList!=null && aList.size()>0 && countA!=0){
                holder.txt.setText(aList.get(position));    
                holder.img.setImageResource(R.drawable.icnA);   
                    countA--;           
            }
            else {
                        if(countA==0 && bList!=null && bList.size()>0 && countB!=0){                        
                        holder.txt.setText(bList.get(position-aList.size()));
                        holder.img.setImageResource(R.drawable.icnB);
                        countB--;
                        }
                    else{
                        if(countA==0 && countB==0 && arr!=null && arr.size()>0){
                                holder.txt.setText(c.get(position-aList.size()-bList.size()));
                                }
                    }
            } 

countA是 A countB的列表大小 是 B 的列表大小

在我使用过的适配器的 getcount 方法中

public int getCount() {
        return c.size()+AList.size()+BList.size();

    }

a list 和 b list 的问题它工作正常,但在 c list 中它给出了一个索引超出范围的异常

4

2 回答 2

0

我想我已经找到了你需要的东西。在我向您展示的这个特定示例中,您需要为 sectionItem 和 EntryItem 实现单独的适配器。

假设您知道如何处理适配器和 ListItems(使用您自己的 item.xml 自定义),这是一个关于如何制作部分和条目的完整教程。(解决方案 #2)

在本教程中,还给出了 xml 布局的代码,但您可以为部分和条目项制作自己的自定义布局。它非常简单明了。

所以它会像这样脱落: 在此处输入图像描述

于 2013-02-28T11:46:35.643 回答
0

终于找到解决办法了......

创建 linekedHashSet D

D.addAll(a);
D.addAll(b);
D.addAll(c);

数组列表 E

E.addAll(D);

并使用 d 来扩充列表。保持顺序:)

于 2013-02-28T12:06:31.643 回答