在我的应用程序中,我使用expandableListView。我需要为可扩展的listView集成一个contextMenu。在我的可扩展ListView中,我为不同的孩子充气不同的布局。因此,当我长按每个childView时,我需要执行不同的操作。
这里我给出了ContextMenu的代码。
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
ExpandableListView.ExpandableListContextMenuInfo info=
(ExpandableListView.ExpandableListContextMenuInfo)menuInfo;
int type=ExpandableListView.getPackedPositionType(info.packedPosition);
Log.e("type",""+type);
menu.setHeaderTitle("Options");
menu.add(1, 1, 1, "Edit");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
ExpandableListView.ExpandableListContextMenuInfo info = (ExpandableListView.ExpandableListContextMenuInfo)item.getMenuInfo();
if(item.getItemId()==1)
{
Log.e("clickd","menu");
}
return super.onContextItemSelected(item);
}
在我的onCreate()中,我注册了listView forContextMenu。
registerForContextMenu(expListView);
但是当我按下GroupView时,它会显示contextMenu。但是当我点击childView时它没有显示ContextMenu ..请帮助我......
答案 0 :(得分:3)
使用它为我工作的那个。 将适配器设置为Expandable ListView后,将其写入。
setListAdapter(expListAdapter);
registerForContextMenu(getExpandableListView());
答案 1 :(得分:2)
您还必须将视图设置为可在适配器的getChildView(...)
中长按。
public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
...
convertView.setLongClickable( true);
答案 2 :(得分:1)
只需使用:
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
您的ExpandableListViewAdapter 中的