在我的片段中,我使用了两个菜单项,一个用于设置,另一个用于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;
}
答案 0 :(得分:4)
确保在onCreate()
中设置setHasOptionsMenu(true);
答案 1 :(得分:0)
Hai我找到了回答我的问题。如果您在操作栏中使用菜单,则根据您的需要在您的片段中定义以下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;
}