【问题标题】:Sharing a context menu between Activities在活动之间共享上下文菜单
【发布时间】:2011-03-06 22:01:53
【问题描述】:

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

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

我想分享在这些活动之间创建上下文菜单的代码。这些活动共享的唯一内容是上下文菜单,因此创建定义 onCreateContextMenu 和 onContextItemSelected 方法的超类(例如,ActivityOne 扩展 ContextMenuActivity)似乎有点矫枉过正。

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

【问题讨论】:

  • 每个上下文菜单项还有一个关联的方法来完成菜单选择后的操作。我也想在活动之间分享这些方法。创建一个单独的类来扩展似乎还是有点矫枉过正。

标签: android


【解决方案1】:

扩展一个覆盖菜单内容的活动,然后将此活动扩展为您的其他活动。如果您需要更改活动之间的菜单,请覆盖新活动中的菜单内容并调用 super。

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

【讨论】:

    【解决方案2】:

    上下文菜单可能与特定视图或上下文相关联。您可以在 xml 中定义您的菜单并将其膨胀到 onCreateContextMenu 中的 Menu 对象中。

    Go down to "Define Menus in XML"

    【讨论】:

    • 我一直在为这个特定的上下文菜单避免使用 xml,因为菜单中的项目会根据按下的项目(或详细信息页面)而变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 2019-01-31
    • 2017-10-15
    • 2012-07-29
    相关资源
    最近更新 更多