Android 微调器作为菜单项未由findViewById初始化
我的操作栏上有一个旋转器。它是菜单项(不是导航模式)。它在从spinnerNumber调用方法的行上返回一个nullpointerexception。 我认为xml有问题,或者我不应该在OnCreateOptionMenu上初始化它(但我认为在OnCreate上调用它,当菜单xml还没有膨胀时,也不正确) act_main.xml:Android 微调器作为菜单项未由findViewById初始化,android,android-spinner,android-menu,Android,Android Spinner,Android Menu,我的操作栏上有一个旋转器。它是菜单项(不是导航模式)。它在从spinnerNumber调用方法的行上返回一个nullpointerexception。 我认为xml有问题,或者我不应该在OnCreateOptionMenu上初始化它(但我认为在OnCreate上调用它,当菜单xml还没有膨胀时,也不正确) act_main.xml: <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/numberSpinner"
android:actionLayout="@layout/spin_number"
android:showAsAction="always">
</item>
<item
android:id="@+id/menu_settings"
android:orderInCategory="100"
android:showAsAction="ifRoom"
android:title="@string/menu_settings">
</item>
findViewbyId将尝试从活动的contentView中查找id 而不是
spinnerNumber= (Spinner)findViewById(R.id.numberSpinner);
试试这个
MenuItem item = menu.findItem(R.id.numberSpinner);
spinnerNumber = (Spinner)item.getActionView()
在
oncreateoptions菜单
中初始化我的MenuItem
对我来说很有效。谢谢
spinnerNumber= (Spinner)findViewById(R.id.numberSpinner);
MenuItem item = menu.findItem(R.id.numberSpinner);
spinnerNumber = (Spinner)item.getActionView()