我在单独的片段中有两个菜单按钮,如下面的代码所示。奇怪的是,当我按下第一个片段中的按钮(“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();