我使用this tutorial使用appDrawer构建应用 一切都很顺利,我决定在操作栏中添加一个动作按钮!
因此我使用that tutorial来制作它。
这个问题是在第二个教程中,当我添加它时:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main_actions, menu);
return super.onCreateOptionsMenu(menu);
}
我的应用程序强制关闭抛出此异常:
似乎与我在上一个教程中使用的onPrepareOptionsMenu存在冲突:appDrawer。以下是抛出异常的代码:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// if nav drawer is opened, hide the action items
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
}
如果您对这场冲突有什么了解,我很乐意收集并试用它们!
谢谢你的时间!
答案 0 :(得分:1)
我在那段代码中找到了这个问题的答案:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
}
我称之为“ R.id.action_settings ”这是无法调用的,因为它在默认的 res / menu / main.xm ** l而我没有使用** RES /菜单/ activity_main_actions.xml 强>
以下是答案:
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// if nav drawer is opened, hide the action items
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(R.id.action_refresh).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
}
非常感谢Tanis。 7x用于帮助我调试那个。