什么方法可以捕获在自定义视图(布局)中选择的上下文菜单项?
Posted
技术标签:
【中文标题】什么方法可以捕获在自定义视图(布局)中选择的上下文菜单项?【英文标题】:What method to catch context menu item selected in custom view (layout)? 【发布时间】:2012-05-01 21:09:19 【问题描述】:我有扩展 LinearLayout 的自定义视图
public class IntelligentComponent extends LinearLayout implements OnCreateContextMenuListener
我已经覆盖了 onCreateContextMenu 来创建上下文菜单,但我找不到 onConextItemSelected 方法来捕获选中的项目。
IntelligentComponent 类型的 onConextItemSelected(MenuItem) 方法必须覆盖或实现超类型方法
我应该使用什么方法?有某种监听器吗?
我这样创建我的菜单:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
if (v != this) return;
menu.add(Menu.NONE, ValueType.SPEED.ordinal(), 0 , ValueType.SPEED.name());
menu.add(Menu.NONE, ValueType.HEARTRATE.ordinal(), 1 , ValueType.HEARTRATE.name());
menu.add(Menu.NONE, ValueType.DISTANCE.ordinal(), 2 , ValueType.DISTANCE.name());
//v.setO
另外我没有使用 registerForContextMenu 方法,有问题吗?菜单显示正常,但我无法捕捉到项目选择事件。 感谢您的帮助。
【问题讨论】:
通过这个:droidnova.com/how-to-create-an-option-menu,427.html 那是为了活动,我需要在布局或自定义视图中这样做。这是行: @Override public boolean onOptionsItemSelected(MenuItem item) ,这是我的问题,我无法覆盖它,因为它不在视图中,而是在活动中。有没有办法创建上下文菜单并从视图内部处理它? 【参考方案1】:这可能是一个愚蠢的答案,但您是否修正了方法名称中的拼写错误?
【讨论】:
是的,它也不是这样工作的:@Override public boolean onContextItemSelected(MenuItem item)以上是关于什么方法可以捕获在自定义视图(布局)中选择的上下文菜单项?的主要内容,如果未能解决你的问题,请参考以下文章
在自定义tableviewcells中添加约束的最佳位置在哪里?