2013-07-04 26 views
0

在我的片段我不片段工作我用两个菜单项,一个用于设置,另一个用于gridview.When我正在点击菜单项中的任何一个这是不triggered.And把登录Onoptionitemselected但这里面没有输入任何请一个帮我谢谢...菜单使用动作条

@Override 
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 


      menu.clear(); 
      getActivity().getMenuInflater().inflate(R.menu.settingmenu, menu); 
      getActivity().getMenuInflater().inflate(R.menu.menugridcalendar, menu); 
      super.onCreateOptionsMenu(menu, inflater); 


     } 


    @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 

      switch (item.getItemId()) { 

      case R.id.menu_setting: 
       Log.i(TAG,"InsdieGridmenu"); 
       Intent intent = new Intent(getActivity(), SettingPage.class); 
       startActivity(intent); 
       break; 
      case R.id.gridmenuid: 
       Activity activity = getActivity(); 
       if (activity instanceof ListItemClickListener) { 
        ((ListItemClickListener)activity).OpenGridView(); 
       } 
       break; 
      } 
      return true; 


     } 

回答

4

确保在您的onCreate()设置setHasOptionsMenu(true);

+0

是的,我把它设置在我的oncreateview(); – Satheesh

+0

你在使用actionbarsherlock吗? – Neoh

+0

没有先生,我感到如果不使用actionbarsherlock库使用动作条有三个动作栏项目 – Satheesh

0

海我找到答案,我question.if您使用的操作栏菜单中的以下onCreateOptionsMenu根据您的需要在您的片段中定义。

@Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     super.onCreateOptionsMenu(menu, inflater); 
     menu.clear(); 
     getActivity().getMenuInflater().inflate(R.menu.settingmenu, menu); 
     getActivity().getMenuInflater().inflate(R.menu.menulistcalendar, menu); 

    } 

而且您的OptionItemSelected操作必须写在主操作栏活动中。

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.menu_setting: 
     Intent intent = new Intent(this, SettingPage.class); 
     startActivity(intent); 
     break; 
    case R.id.gridmenuid: 
     this.OpenGridView(); 
    } 
    return true; 
} 
+0

那么你将如何使用片段的方法从活动? – astuter