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

Tus*_*pta 10 android

我有一个ListActivity,我想为每个列表元素实现上下文菜单.我知道这样做的常用方法是在长按/点击时显示上下文菜单.我想知道是否有办法在按键上显示每个元素的上下文菜单(最好是菜单键).要重新解释我的问题,如何通过按菜单键(或任何其他键)来触发上下文菜单而不是选项菜单.

Com*_*are 8

要打开上下文菜单,请致电openContextMenu().通过键触发它,覆盖onKeyDown()onKeyUp().

话虽这么说,我真的不推荐这个.

用户抱怨Android没有UI标准.相反,Android具有UI约定,允许开发人员获得一些自由(更重要的是,不是让您的应用程序在Android Market上市的障碍).

但是,这些用户的观点是非常有效的 - 当应用决定在UI切线上时,他们的体验会受到损害.决定让MENU键弹出一个上下文菜单就是这样一个切线.对于初学者来说,在触摸屏设备上,这将无法正常工作,因为您的选择项目没有ListView,因此用户不清楚菜单的相关内容.

我怀疑对于你认为以这种方式解决的任何问题都有更好的解决方案.

  • 我同意开发人员需要遵循一些常规约定,以使消费者的Android体验从一个应用程序更加一致.但是,对于这个具体的问题,我认为有些情况是合适的,我自己就是这样做的. (2认同)

mtm*_*ock 7

我实际上已经为我的一个应用做了同样的事情,因为它对我的应用程序有意义.最好和最简单的方法是覆盖listActivity的onListItemClick().这比onKeyDown()更好,因为它特别适用于有问题的列表项(视图),并且只适用于列表项,而不适用于屏幕的其余部分.

onListItemClick(ListView l, View v, int position, long id)
{
   v.showContextMenu();
}
Run Code Online (Sandbox Code Playgroud)

那么你所要做的就是覆盖上下文菜单方法,你就是金色的