长按一下,我希望ExpandableList中的每个组都有一个菜单。但目前只有非空组在长按并且可选时显示蓝色背景。所有空组都不会对长按进行响应。
我使用registerForContextMenu(list)将列表注册到片段,并编写以下代码:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.item_task_long_click_menu, menu);
}
@Override
public boolean onContextItemSelected( android.view.MenuItem item) {
ExpandableListContextMenuInfo info = (ExpandableListView.ExpandableListContextMenuInfo) item.getMenuInfo();
switch(item.getItemId()) {
case R.id.itlcm_menu_edit:
//do something
break;
case R.id.itlcm_menu_remove:
//do something
break;
}
return true;
}
在我设置的适配器中:
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
为什么空组无法选择?还没有找到改变它的方法......
编辑:我想这是registerForContextMenu(list)
也许没有孩子的团体没有注册长按....
任何人
答案 0 :(得分:1)
我能够解决它。
问题不在于registerForContextMenu()。问题是我的自定义ExpandableListAdapter,其中我为GroupViews使用了两个不同的视图(getGroup(...))。对任何点击都没有反应的那个包含一个CheckBox,它覆盖了整个GroupView的焦点。所以我补充道:
android:focusable="false"
到XML中的CheckBox,使用CheckBox的GroupView对点击进行了反应。