静态选项菜单

4
我想为所有的活动屏幕创建一个静态的选项菜单。我不想在每个活动中覆盖 onCreateOptionsMenu()
由于 Menu 类是具有大量方法的接口,因此很难创建实现类的静态对象。
有其他方法可以实现相同的功能吗?
1个回答

17

如果我理解你的问题正确,你想在所有Activity中使用相同的菜单。我可以想到两种方法来实现这个功能:

  1. 创建一个继承自Activity的子类,并实现onCreateOptionsMenu()onOptionsItemSelected()(还可能需要实现onPrepareOptionsMenu)。然后让所有的Activity 继承这个子类。

  2. 在某个位置创建一个名为populateOptionsMenu()的静态方法,该方法接收一个Menu(和可能需要的Context)作为参数。然后,你的Activity类可以从它们的onCreateOptionsMenu()方法中调用此方法来填充Menu。你还需要一个对应的processItemSelected()静态方法来处理被点击的菜单项。

选项1似乎是最好的选择,因为它不需要在你的Activity中调用静态方法时添加额外的代码。


你的意思是选项2不需要相同的样板文件吗? - jondavidjohn
2
第一个解决方案不是一个好主意,因为它需要继承。如果我的活动不仅限于Activity(FragmentActivity,ListActivity等),那该怎么办?我认为我们应该尽可能避免继承。 - emeraldhieu
在这种情况下,你不能使用“implements”吗? - Mr Pablo
如何将全局选项菜单与购物车图标集成,并显示数量计数,我该如何实现全局计数,请帮助我。 - Harsha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接