java - Android - MenuItem布局顺序影响java代码

标签 java android xml

我尝试创建一个带有搜索和刷新按钮的菜单,但由于刷新按钮仅在多个 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/

相关文章:

java - 为什么方法不是 toLowerCase();在我的代码中工作?

java - 地址已在使用异常(多播套接字)

java - 在android中的EdiTtext中删除/修改选定的文本

java - 找不到类异常 : Unknown Class Name

带引号的 Javascript 导致 Blogger 模板中缺少参数

java - 这种违反单一责任原则的行为有什么好处

c# - 单元测试方法独立性

XML::LibXML 的文本节点父节点概念

android - 单个数组的JSON解析和数组名

html - XSLT 总计和小计