背景
为 Android 3.0 开发,我有一个HostActivity
是 and 的超NotebooksActivity
类NoteActivity
。NotebooksActivity
包括一个片段,NotebooksFragment
.
在HostActivity
中,我包含了一个菜单,我希望它出现在 ActionBar 中选项菜单的最右端,即子类中的所有菜单项都HostActivity
应该出现在 中添加的菜单项的左侧HostActivity
。
菜单膨胀HostActivity
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
final MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.host_menu, menu);
return super.onCreateOptionsMenu(menu);
}
问题
当我在 中添加菜单项时NoteActivity
,我按预期实现了所需的顺序:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.notebook_menu, menu);
return super.onCreateOptionsMenu(menu);
}
但是,当我在 中添加菜单项时NotebooksFragment
,由于 Fragments 的工作方式,onCreateOptionsMenu
在 中的相同方法之后调用HostActivity
,导致HostActivity
' 的菜单项出现在NotebooksFragment
' 之前。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.notebooks_menu, menu);
SearchView sv = new SearchView(getActivity());
sv.setOnQueryTextListener(this);
menu.findItem(R.id.search_notebooks).setActionView(sv);
super.onCreateOptionsMenu(menu, inflater);
}
我怎样才能实现我想要的菜单订购?