我有两个活动都包含使用menu.add(int,int,int,CharSequence)以编程方式构建的相同上下文菜单。他们都使用onCreateContextMenu和 onContextItemSelected。
第一个Activity包含一个ListView,当用户长按某个项目时,将显示该项目的上下文菜单。第二个活动(活动1中每个项目的详细信息屏幕)包含一个按钮,当用户按下按钮时,将出现上下文菜单。
我想分享在这些活动之间创建上下文菜单的代码。这些活动共享的唯一内容是上下文菜单,因此创建一个定义onCreateContextMenu和onContextItemSelected方法的超类(例如,ActivityOne扩展ContextMenuActivity)似乎有些过分。
有没有更好的方法在活动之间分享这些方法?
答案 0 :(得分:3)
扩展覆盖菜单内容的活动,然后为您的其他活动扩展此活动。如果您需要在活动之间更改菜单,请覆盖新活动中的菜单内容并调用super。
android dev guide为选项菜单解释它,但应该适用于上下文菜单和对话框。 http://developer.android.com/guide/topics/ui/menus.html
答案 1 :(得分:2)
上下文菜单可能与特定视图或上下文相关联。您可以在xml中定义菜单并将其膨胀到onCreateContextMenu中的Menu对象。