这是我定义菜单的 XML 文档:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/search"
android:icon="@drawable/ic_action_search"
android:showAsAction="ifRoom"
android:title="@string/search"/>
<item
android:id="@+id/locate"
android:icon="@drawable/ic_action_locate"
android:showAsAction="ifRoom"
android:title="@string/locate"/>
<item
android:id="@+id/favorite"
android:icon="@drawable/ic_action_star"
android:showAsAction="ifRoom"
android:title="@string/favorite"/>
</menu>
这是我将菜单项分配给变量的地方(mainMenu
是在其中设置的私有变量onCreateOptionsMenu()
):
MenuItem favorite = mainMenu.findItem(R.id.favorite);
MenuItem search = mainMenu.findItem(R.id.search);
MenuItem locate = mainMenu.findItem(R.id.locate);
这导致两个变量被分配标识符,一个变量被分配null
。在所有情况下,null 变量都对应于 XML 文件中第二个定义的菜单项(在本例中为locate
)。如果我在 XMLlocate
之后移动,将为空。在 Java 中分配三个变量的顺序无关紧要。favorite
favorite
我很困惑。我错过了什么?