2010-06-22 39 views
1

我有两个活动都包含使用menu.add(int,int,int,CharSequence)以编程方式构建的相同上下文菜单。他们都使用onCreateContextMenu和 onContextItemSelected。在活动之间共享上下文菜单

第一个活动包含一个ListView,当用户长按某个项目时,该项目的上下文菜单出现。第二个活动(活动1中每个项目的详细屏幕)包含一个按钮,当用户按下按钮时,上下文菜单出现。

我想分享在这些活动之间创建上下文菜单的代码。这些活动共享的唯一的东西是上下文菜单,所以创建一个定义onCreateContextMenu和onContextItemSelected方法的超类(例如ActivityOne extends ContextMenuActivity)看起来有些矫枉过正。

在活动之间共享这些方法是否有更好的方式?

+0

每个上下文菜单项还有一个关联的方法来完成菜单选择后的操作。我想在活动之间分享这些方法。看起来像矫枉过正创建一个单独的类来扩展。 – Richard 2010-06-22 19:40:57

回答

3

扩大活动覆盖了菜单的东西,然后再扩展这项活动为你的其他活动。如果您需要更改活动之间的菜单,请在新活动中覆盖菜单内容并调用超级菜单。

安卓开发指南解释它的选项菜单,但应适用于上下文菜单和对话框。 http://developer.android.com/guide/topics/ui/menus.html

2

上下文菜单可能与特定视图或上下文绑定。您可以在xml中定义菜单,并将其充入onCreateContextMenu中的Menu对象。

Go down to "Define Menus in XML"

+0

我一直在为这个特定的上下文菜单避免xml,因为菜单中的项目根据按下的项目(或详细信息页面)进行更改。 – Richard 2010-06-22 19:39:33

相关问题