【发布时间】:2012-04-09 06:47:26
【问题描述】:
我有一个 ExpandableListView,我想在单击组时记录组位置。不幸的是,下面的代码总是返回 0,就好像我点击的是第 0 组一样。
exList.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
groupPosition = ExpandableListView.getPackedPositionGroup(id);
Log.i("group position", groupPosition + "");
return false;
}
});
我还有一个关于组和孩子的 longclicklistener,它工作正常:
exList.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (ExpandableListView.getPackedPositionType(id) == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
groupPosition = ExpandableListView.getPackedPositionGroup(id);
...
}
有什么想法吗?
【问题讨论】:
-
您是否为 ExpandableListView 使用自定义适配器?
-
是的。我的其他听众工作正常
-
好的,确保您的 getItem 和 getItemId 方法返回有效值而不是 0 ..(在您的自定义适配器中)您还可以查看此适配器 developer.android.com/resources/samples/ApiDemos/src/com/…
-
public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) 确实返回了组位置。
-
我不知道,但如果我不定义 groupPosition,它工作正常...
标签: android expandablelistview