静态选项菜单

Ksh*_*wal 4 user-interface android

我想为我的所有活动屏幕创建一个静态选项菜单.我不想onCreateOptionsMenu()在每个活动中覆盖.

由于Menu类是具有大量方法的接口,因此很难创建实现类的静态对象.

还有其他方法吗?

Dav*_*ebb 17

如果我正确地阅读了您的问题,您需要在所有活动中使用相同的菜单.我可以想到两种方法:

  1. 创建一个Activity实现onCreateOptionsMenu()onOptionsItemSelected()(可能 onPrepareOptionsMenu)的子类.然后让所有Activity类扩展此子类.

  2. 在某个地方创建一个静态方法,称之为populateOptionsMenu()带有Menu(可能是a Context)参数的东西.Activity然后,您的类可以从他们的onCreateOptionsMenu()方法中调用它来填充Menu.processItemSelected()单击项目时还需要相应的静态方法.

选项1看起来最好,因为在您的活动中不需要相同的bolierplate来调用静态方法.

  • 第一个解决方案不是好主意,因为它需要继承.如果我的活动不是Activity(FragmentActivity,ListActivity,...)怎么办?我认为我们应该在可能的情况下取消继承权. (2认同)