我有一个主活动,它承载了一个导航抽屉和多个片段。每个片段都有自己的一组菜单项。
现在,当我添加onOptionsItemSelected方法时,问题开始出现,导航Drawer无法打开。当我不添加onOptionsItemSelected方法时,导航Drawer打开,但菜单项无法工作。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_payment_type_data_stats, parent, false);
setHasOptionsMenu(true);
return v;
}
@Override
public void onCreateOptionsMenu(@NonNull Menu menu, MenuInflater inflater) {
menu.clear();
inflater.inflate(R.menu.menu_payment_type_stats, menu);
Objects.requireNonNull(((MainActivity) Objects.requireNonNull(getActivity())).getSupportActionBar()).setTitle("title");
super.onCreateOptionsMenu(menu, inflater);
}
@SuppressLint("NonConstantResourceId")
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_today:
getDataForToday();
break;
case R.id.action_past_seven:
getDataForPeriod(calendarDates.pastSeventhDate(), calendarDates.todayDate());
break;
case R.id.action_custom_date:
openDatePickerDialog(sdf);
break;
}
return true;
}
如果您对解决此问题有任何建议,请与我们分享。
2条答案
按热度按时间qjp7pelc1#
可手动设置-
或者可以试试这个
mDrawerToggle.syncState();
pgccezyw2#
您只需将MainActivity中的***onOptionsItemSelected***从
并将其更改为
对于MainActivity中的***onCreateOptionsMenu***方法,您可以使用
对于片段(每个片段可以有单独的动作菜单项),您需要实现3个方法
*在创建视图时
*在创建选项菜单上
*在选定的选项项目上
示例: