1

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

0 回答 0