1

长时间单击时,我希望 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)

也许没有任何孩子的组没有注册到长按....

有人吗?

4

1 回答 1

1

我能够解决它。

问题不在于 registerForContextMenu()。问题是我的自定义 ExpandableListAdapter,其中我为 GroupViews (getGroup(...)) 使用了两个不同的视图。对任何点击都没有反应的那个包含一个 CheckBox,它覆盖了整个 GroupView 的焦点。所以我补充说:

android:focusable="false" 

对于 XML 中的 CheckBox,瞧,带有 CheckBox 的 GroupView 对点击做出了反应。

于 2012-11-30T09:25:38.830 回答