我尝试创建一个带有搜索和刷新按钮的菜单,但由于刷新按钮仅在多个 Activity 中可用,因此我想将可见性设置为 false,然后添加以下内容:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
MenuItem item = menu.findItem(R.id.action_refresh);
item.setVisible(true);
return true;
}
到 Activity java
使用下面的代码,菜单正常显示,左侧刷新,右侧搜索
<item
android:id="@+id/action_search"
android:title="Search"
android:menuCategory="system"
android:orderInCategory="2"
android:showAsAction="always"
android:icon="@drawable/ic_action_search"/>
<item
android:id="@+id/action_refresh"
android:title="Refresh"
android:menuCategory="system"
android:orderInCategory="1"
android:showAsAction="always"
android:icon="@drawable/ic_action_refresh"
android:visible="false"/>
但是通过颠倒项目顺序,
<item
android:id="@+id/action_refresh"
android:title="Refresh"
android:menuCategory="system"
android:orderInCategory="1"
android:showAsAction="always"
android:icon="@drawable/ic_action_refresh"
android:visible="false"/>
<item
android:id="@+id/action_search"
android:title="Search"
android:menuCategory="system"
android:orderInCategory="2"
android:showAsAction="always"
android:icon="@drawable/ic_action_search"/>
刷新按钮/项目将不会出现。
虽然我已经找到了解决方法并且可以继续,但这仍然让我很困惑,并且我没有得到任何好的解释。
为什么会发生这种情况?
最佳答案
您使用的是 Eclipse 吗? 我在 Eclipse 中发现了一个错误,仅更改 XML 资源文件中元素的顺序不会重新编译该文件,从而导致发生各种奇怪的事情。
我建议您执行“项目 > 清理”以确保从头开始重新创建资源标识符。
关于java - Android - MenuItem布局顺序影响java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21368199/