我需要创建一个应用程序,所有活动都有共享菜单,但我在创建所有活动的相同菜单并使这些活动成为“单例”之间犹豫不决,还是创建多个片段并在一个活动中使用它们,该活动将拥有该菜单。
我希望我的应用程序与大多数设备兼容,因此我不知道哪一个是最好的(对于内存管理和可重用的东西...)
我应该尝试什么?如果有比这两者更好的流程,请随时建议 :)
我希望我的应用程序与大多数设备兼容,因此我不知道哪一个是最好的(对于内存管理和可重用的东西...)
我应该尝试什么?如果有比这两者更好的流程,请随时建议 :)
一种方法是定义一个父类活动,所有其他活动都将继承自该类。在父类的onCreateOptionsMenu
中,您可以定义适用于所有活动的菜单:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.common_menu, menu);
return true;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_preview, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection...
}
编辑
还要记得在Fragment的onCreate()方法中添加setHasOptionsMenu()。在这种情况下,Android框架会调用Fragment类中的onCreateOptionsMenu()方法,并将其菜单项添加到Activity添加的菜单项中(参见this link)。