【问题标题】:Creating a ContextMenu with a ListView使用 ListView 创建 ContextMenu
【发布时间】:2017-01-09 23:18:15
【问题描述】:

我有一个ListView,里面有一个CustomAdapter,长按后应该会显示一个ContextMenu

我尝试这样做:

// in OnCreateView
ListView list = (ListView) view.findViewById(R.id.list);

registerForContextMenu(list);

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuInflater inflater = getActivity().getMenuInflater();
    inflater.inflate(R.menu.todo_context_menu, menu);
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.edit:
            // Do something
            return true;
        case R.id.delete:
            // Do something
            return true;
        default:
            return super.onContextItemSelected(item);
    }
}

我的todo_context_layout.xml 是:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/edit" android:title="Edit"/>
    <item android:id="@+id/delete" android:title="Delete"/>
</menu>

长按会触发OnItemLongClickListener,但不会显示上下文菜单。我做错了什么?

阅读以下thread后,我找不到我的问题的答案。

【问题讨论】:

    标签: android listview contextmenu


    【解决方案1】:

    如果您想显示上下文菜单,则不需要 longclicklistener。尝试不使用此侦听器。

    【讨论】:

    • 抱歉没看到.. 你有额外的 longclicklistener 吗?
    • 我有一个OnItemLongClickListener,是的,它确实被调用了,但由于某种原因没有onCreateContextMenu
    • 如果要显示上下文菜单,则不需要 longclicklistener。尝试不使用此侦听器。
    • 谢谢!没有看到您的评论,请将其作为答案发布,以便我接受它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多