如何在按键上实现上下文菜单而不是长按/轻按

我有一个ListActivity,我想为每个列表元素实现上下文菜单。 我知道常用的方法是通过长按/点击来显示上下文菜单。 我想知道是否有一种方法来显示按键上的每个元素的上下文菜单(最好是菜单键)。 要改变我的问题,我怎样才能触发上下文菜单,而不是按菜单键(或任何其他键)的选项菜单。

Solutions Collecting From Web of "如何在按键上实现上下文菜单而不是长按/轻按"

要打开上下文菜单,请调用openContextMenu() 。 要通过键触发它,请重写onKeyDown()onKeyUp()

这就是说,我真的不推荐这个。

用户抱怨Android没有UI标准。 相反,Android有UI惯例,允许开发者有一定的自由(更重要的是,让你的应用程序在Android Market上市不是障碍)。

但是,这些用户的观点是非常有效的 – 当应用程序决定切换到UI时,他们的体验会受到损害。 决定让菜单键popup一个上下文菜单将是一个这样的切线。 对于初学者来说,在触摸屏设备上,这将不会很好,因为ListView没有选定的项目,所以用户不清楚菜单属于什么。

我怀疑是否有更好的解决办法,你认为你正在解决这个问题。

我实际上为我的一个应用程序做了同样的事情,因为这对我的应用程序是有意义的。 最好也是最简单的方法是为listActivity重写onListItemClick()。 这比onKeyDown()更好,因为它专门针对有问题的列表项(视图),只会应用于列表项,而不是屏幕的其余部分。

 onListItemClick(ListView l, View v, int position, long id) { v.showContextMenu(); } 

那么你所要做的就是重写上下文菜单方法,而你是黄金