方案 -
itemnaem A
itemnaem A
itemnaem B
itemnaem B
itemnaem B
itemnaem C
.
.
.
itemnaem c
我有一个包含50个字符的arraylist。 在50个属于A类的50个项目中,20个属于B类,其余属于C类。
我想要一个列表视图,其中所有类型A项首先出现,然后是类型B,然后键入C.
从数组列表中我可以将这些项目分成3个不同的列表A,B&下进行。
但我面临的问题是按顺序显示它们。
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();
}
列表和b列表的问题它可以正常工作但在c列表中它给出了一个索引超出范围的异常
答案 0 :(得分:0)
我想我找到了你需要的东西。在我给你展示的这个特定例子中,你需要为sectionItem和EntryItem实现单独的适配器。
假设您知道如何处理适配器和ListItems(使用您自己的item.xml自定义),this is a full fledged tutorial for how to make sections and entries.(Solution #2)
在本教程中,还给出了xml布局的代码,但是您可以为section和entryitems制作自己的自定义布局。它非常简单明了。
这样就会像这样:
答案 1 :(得分:0)
最终找到解决方案.....
创建了linekedHashSet D
D.addAll(a);
D.addAll(b);
D.addAll(c);
arraylist E
E.addAll(D);
并使用d来扩充列表。维护订单:)