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

时间:2014-01-26 19:32:59

标签: java android xml

我尝试使用搜索和刷新按钮创建菜单,但由于刷新按钮仅在多个活动中可用,我想将可见性设置为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;
}

到活动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"/>

不会出现刷新按钮/项目。

虽然我找到了解决方法并且可以继续进行,但这仍然让我非常困惑,而且我没有得到任何好的解释。

为什么会这样?

1 个答案:

答案 0 :(得分:0)

您使用的是Eclipse吗? 我在Eclipse中看到一个错误,只是改变XML资源文件中元素的顺序就不会重新编译文件,导致各种奇怪的事情发生。

我建议您执行“Project&gt; Clean”以确保从头开始重新创建资源标识符。