【问题标题】:Duplicates in my ExpandableListView Adapter我的 ExpandableListView 适配器中的重复项
【发布时间】:2013-10-24 14:37:39
【问题描述】:

问题是每次我在我的 ExpandableListView 中向 GroupItem 添加多个子项时,该项都会与前一个子项重复。我已将范围缩小到我的 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,我将不得不再次实现该方法。

为了说明,这就是问题的样子:

如何在第一次调用时排除第 2 项被拾取,以及如何在第二次调用时排除第 1 项被调用?以此类推。

感谢您的阅读和所有帮助。

【问题讨论】:

    标签: android for-loop expandablelistview


    【解决方案1】:
    @Override
    public int getChildCount(.....)
    {
         return 2;
    }
    

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

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

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

    【讨论】:

    • childItems是动态的,所以有时可能是2个,有时可能是5个。因此,为什么不能使用这种方法。我试过了。谢谢你的想法。
    • 感谢您的尝试,Johnthetripp3r。但是我说的方法是getChild,而不是getChildCount。直到现在我才注意到。
    • @Paul 对不起我的愚蠢错误。现在看看它。我想现在应该可以正常工作了。
    • @Paul 如果您有任何疑问,请询问
    • @johnthetripp3r,问题不在于 getChildrenCount 没有返回任何值。这很好用,但为什么我的 Map 的所有值而不是我的 getChild 中的一个?因为每次我向地图添加一个新项目时,它也会在下一个添加的项目中添加另一个项目,所以有很多重复项。我该如何处理?
    【解决方案2】:

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

    就是这样

    【讨论】:

      【解决方案3】:

      我从一些旧的仓库中挖出来的,我想这就是我最终要做的。

      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();
      
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-04
        • 1970-01-01
        • 1970-01-01
        • 2016-11-23
        • 1970-01-01
        • 2022-01-05
        • 1970-01-01
        • 2018-05-22
        相关资源
        最近更新 更多