在Android中按需显示上下文菜单

3
考虑一个使用registerForContextMenu设置上下文菜单的Android ListView。当用户长按项目视图时,ListView项目的上下文菜单将被显示。
此外,如果满足某些条件,我希望在用户轻触(而不是长按)项目时也能显示上下文菜单。这可能吗?如何实现?

不清楚问题具体是什么。你的意思是,你已经使用registerForContextMenu设置了ListView,但它还是没有显示 - 还是已经显示了? - Mathias Conradt
我还想在用户轻触(而非长按)时显示上下文菜单。 - hpique
2个回答

6

我通过浏览 Android 源代码成功解决了这个问题。以下是我的做法:

protected void onItemClick(AdapterView<?> adapterView, int position) {
    final int start = adapterView.getFirstVisiblePosition();
    final int index = position - start;
    final View childView = adapterView.getChildAt(index);
    if (childView != null) {
        adapterView.showContextMenuForChild(childView);
    }
}

1

是的,从您的点击事件中调用performLongClick方法,它应该可以实现。


如果您已经通过onContextItemSelected()设置了长按,则这是最简单的方法。只需创建一个itemClickListener()并将performLongClick()添加到其中即可。对我很有用,谢谢! - gcl1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接