纠结的问题终于解决了。
原来用他自带的2个longclick方法。getExpandableListView.setOnItemLongClickListener(),和getExpandableListView.setOnLongClickListener(),不是没响应就是会出BUG。
最后,从google的demo里面找到了答案。
1、首先注册
registerForContextMenu(getExpandableListView());事件
2、然后,重写
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {}方法。然后在这个方法里面写相应的响应。
3、要识别当前是点击子列表还是组列表。
int type = ExpandableListView.getPackedPositionType(info.packedPosition);
//点击的是子列表
if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) {
int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition);
int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition);
/相应显示dialog吧~
}
//点击的是组列表
else if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) {
int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition);
//相应显示dialog吧~
}