我有一个这样的列表:
-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
替代方案:
我可以使用哈希映射,但想看看是否有内置方式:)
为什么我想要孩子的 pos:
我已将列表中孩子的位置映射到数据库中相应的 id。所以当用户想要删除孩子时,我可以在 hashmap 中查找它并将它的 id 传递给数据库删除函数。