我想为所有活动屏幕创建一个静态选项菜单。我不想在每个活动中覆盖onCreateOptionsMenu()
。
由于Menu
类是具有大量方法的接口,因此很难创建实现类的静态对象。
还有其他方法吗?
答案 0 :(得分:17)
如果我正确阅读了您的问题,您需要在所有活动中使用相同的菜单。我可以想到两种方法:
创建Activity
的子类,实现onCreateOptionsMenu()
和onOptionsItemSelected()
(可能还有onPrepareOptionsMenu
)。然后让所有Activity
类扩展此子类。
创建一个名为populateOptionsMenu()
的静态方法,它将Menu
(可能是Context
)作为参数。然后,您的Activity
课程可以通过onCreateOptionsMenu()
方法调用此方法来填充Menu
。在点击项目时,您还需要相应的processItemSelected()
静态方法。
选项1似乎最好,因为在您的活动中不需要相同的bolierplate来调用静态方法。