我的ExpandableListView适配器中的重复项

时间:2013-10-24 14:37:40

标签: android for-loop expandablelistview

问题在于每次我在ExpandableListView中向GroupItem添加多个Child时,该项与前一个子项重复。我已将其缩小到我的ExpandableListView(自定义)适配器中的getChild()方法。

getChild()方法如下所示:

public Object getChild(int groupPosition, int childPosition) {

     return rCollection.get(weekData.get(groupPosition)).get(childPosition);

}

rCollection = Map<String, List<Custom>>;weekData = List<String>;

如何更改getChild以便每个请求只返回一个项目,这样我就不会重复了?我不能使用for循环,因为如果我将groupPosition和childPosition更改为Arrays,我将不得不再次实现该方法。

要说明,这就是问题所在:

Duplicates

如何在第一次调用项目2时将其排除在外,以及如何在第二次调用项目时将其排除?等等。

感谢您阅读和所有帮助。

3 个答案:

答案 0 :(得分:2)

@Override
public int getChildCount(.....)
{
     return 2;
}

如果您确定每个项目的只有2个子项
对不起,这是你想要的正确方法。
 编辑

@Override
public int getChildrenCount(int groupPosition)
{
    return (rCollection.get(weekdata.get(groupPosition())).size();
}

这将返回地图List<Custom>的大小(长度)。
如果需要,平衡paranthesis

答案 1 :(得分:1)

我不确定您是否找到了解决方案,但这对我有用;因为我在子视图中返回了一个 recyclerview,所以在 getChildrenCount() 方法中返回 1。

就这样

答案 2 :(得分:0)

我把它从一些旧的回购中挖出来,我想这就是我最终要做的事情。

public int getChildrenCount(int groupPosition) {
    // Fixes a bunch of NPE when the groupPosition = NULL. This way it checks and returns 0 when it = null. 
    List<MySQLWeek> group = rCollection.get(weekData.get(groupPosition));

        if (group == null){
        return 0;
        }

        return group.size();


}