0

在我的片段中,我使用了两个菜单项,一个用于设置,另一个用于 gridview。当我单击任何一个未触发的菜单项时。并在 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

2 回答 2

4

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

于 2013-07-04T06:00:09.077 回答
0

海我找到了我的问题的答案。如果您在操作栏中使用菜单,则根据您的需要在您的片段中定义以下 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 动作必须写在 Main Actionbar 活动中。

 @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;
}
于 2013-07-05T06:06:18.043 回答