我有两个不同片段的菜单按钮,如下面的代码所示。奇怪的是,当我按下第一个片段中的按钮(“Home”)时(当然还有第二个片段中的按钮),它会触发第二个片段中的onOptionsItemSelected。
如果我在两个片段中都有onOptionsItemsSelected,则会对两个片段中的按钮触发第一个片段中的一个片段,并且两个按钮的菜单ID都显示为1。
我可以做些什么来使不同的按钮做不同的事情? (通过触发不同的事件或通过生成不同的菜单ID。)
public static class MenuFragment extends SherlockFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.add("Home").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
}
/**
* Second fragment with a menu.
*/
public static class Menu2Fragment extends SherlockFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.add("Filter").setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) // This gets fired when Menu 1 is selected
{
int id = item.getItemId();
Toast.makeText(getActivity(), "Option " + id+ " selected", Toast.LENGTH_SHORT).show();