【发布时间】:2012-07-29 13:16:34
【问题描述】:
我有一个这样的列表:
-ONE
-TWO
-THREE
展开时:
-ONE
->a1
-TWO
->a2
->b2
-THREE
->a3
我想要什么:
我想要一个孩子在这样的整个列表中的位置,不管其他组是否扩展:
a1=0
a2=1
b2=2
etc...
到目前为止我尝试了什么:int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition);
这只给了我孩子在小组中的位置。所以,
a1=0
a2=0
b2=1
etc...
我还研究了getFlatListPosition,但它的工作方式是,如果组被扩展,则仅相对于列表计算孩子的位置。并且它还计算了该组的位置。例如,如果 ONE 未展开,而 TWO 和 THREE 展开,则:
-ONE
-TWO = 0
->a2 = 1
->b2 = 2
-THREE = 3
->a3 = 4
替代方案:
我可以使用哈希映射,但想看看是否有内置方式:)
我为什么要孩子的位置:
我已将列表中孩子的位置映射到数据库中它的相应 id。因此,当用户想要删除孩子时,我可以在 hashmap 中查找它并将其 id 传递给数据库删除函数。
【问题讨论】:
-
您使用哪种适配器来填充
ExpandableListView?
标签: android list hashmap expandablelistview