有没有一种方便的方法在多个Activity中显示相同的选项菜单选项?
例如:在我的应用程序中,我以三种方式之一显示电视节目指南。
- 七天指南(带有7个标签的TabActivity) - 所有频道“现在正在播放”(ListActivity) - 按开始时间列出今天所有展示内容(Activity - 可轻松更改为ListActivity)
对于TabActivity中的Options菜单,代码非常简单...
例如:在我的应用程序中,我以三种方式之一显示电视节目指南。
- 七天指南(带有7个标签的TabActivity) - 所有频道“现在正在播放”(ListActivity) - 按开始时间列出今天所有展示内容(Activity - 可轻松更改为ListActivity)
对于TabActivity中的Options菜单,代码非常简单...
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
menu.clear();
inflater.inflate(R.menu.gv_options_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.view:
...
...
}
}
...但目前看来,我需要将其复制/粘贴到其他两个活动中,这不是我喜欢做的。如果我更改一个选项菜单代码,那么我也需要为另外两个活动进行更改。
我能想到的唯一替代方案是拥有一个“帮助器”类(POJO),我可以向其中添加一个方法并将context
传递进去,以允许使用getMenuInflator()
方法和另一个方法,我可以将item.getItemId()
的结果传递进去以与switch-case处理。
有多个具有相同选项菜单的活动的正常方式是什么?