我可以在另一个活动中放置onCateateMptionsMenu吗?

时间:2014-09-02 14:54:14

标签: android android-activity android-actionbar

我正在创建一个应用程序。我是初学者,我对我的MainActivity感到焦虑。我相信它太大了,有些事情没有必要在那里。我不确定在新活动中我可以安全使用什么。

我想分开的一件事是:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_activity_actions, menu);
    return super.onCreateOptionsMenu(menu);
}

是否可以在单独的课程中设置此选项菜单设置(针对操作栏)?

谢谢

3 个答案:

答案 0 :(得分:0)

我想这是可能的,但您仍然需要覆盖OnCreateOptionsMenu,因此对Activity尺寸的改变不会太大。它可以使您的代码更容易阅读,因为所有内容都在单独的课程中,但它不会使您的活动减少,并且#34;大"从使用的数据的意义上讲。我个人不会尝试单独OnCreateOptionsMenu,因为它是Activity的一部分,如果您想要显示它,您将始终需要覆盖OnCreateOptionsMenu功能。尝试隔离Activity中不具有Activity特定功能的大功能,以便您可以在代码中的其他位置重复使用它们。

答案 1 :(得分:0)

您无法将onCreateOptionsMenu保留在其他活动中。

如果您认为您的活动文件太大,则意味着您的活动正在做不应该做的事情。

尝试将活动中多余的代码删除到UtilitiesHelper类。

答案 2 :(得分:0)

onCreateOptionsMenu是来自Activity类的一种方法,如果你把它放在另一个Activity你不会得到你的结果,它是它的固有部分想。相反,如果你膨胀了第二个Menu,那么你将获得没有Menu的主要活动,只有当你膨胀第二个Activity时才会找到onCreateOptionsMenu

简单来说,Activity与其声明的Activity相关联。如果你想将方法移到另一个类我建议移动不属于{{1}}生命周期的方法