首先重写onCreateContextMenu方法
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
ExpandableListView.ExpandableListContextMenuInfo info = (ExpandableListView.ExpandableListContextMenuInfo) menuInfo;
//menuinfo该对象提供了选中对象的附加信息
int type = ExpandableListView
.getPackedPositionType(info.packedPosition);
int group = ExpandableListView
.getPackedPositionGroup(info.packedPosition);
int child = ExpandableListView
.getPackedPositionChild(info.packedPosition);
System.out.println("type---------"+ type);
System.out.println("group--------"+ group);
System.out.println("child--------"+ child);
// this.setMGroupID(group);
// this.setMChildrenID(child);
//响应
if (type == 0) {// 分组长按事件
System.out.println("父项");
} else if (type == 1) {// 长按子表项
System.out.println("子表项");
}
}
然后注册ExpandableListViexpandListAdapter,否则onCreateContextMenu方法不会执行
expandList = (ExpandableListView) findViewById(R.id.expandableListView1);
//为ExpandableListView设置监听器
expandListAdapter = new MyExpandableListAdapter();
expandList.setAdapter(expandListAdapter);
//隐藏父控件的箭头图标
expandList.setGroupIndicator(null);
registerForContextMenu(expandList);
//设置监听器
最后重写 public boolean onContextItemSelected(MenuItem item) 方法实现响应事件