其他分享
首页 > 其他分享> > android – finditem()找不到菜单,卡住了NullPointerException

android – finditem()找不到菜单,卡住了NullPointerException

作者:互联网

我在onCreateOptionsMenu()的选项菜单上更改了一些属性时遇到了困难.似乎findItem()返回null,即使我非常确定对菜单项的引用是正确的.我的代码如下:

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_profile, menu);
        MenuItem leftie = menu.findItem(R.id.menu_profile);
        leftie.setIcon(R.drawable.ic_menu_mapmode);
        leftie.setTitle(R.string.back_map);
        leftie.setIntent(authIntent);

        return true;
    }

我真的不知道那里有什么不对.提前致谢 :)

编辑:我忘了包含实际问题.

解决方法:

您可以在XML中提及该菜单项的标题和图像.

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:id="@+id/newsItem"
    android:icon="@drawable/news_tab"
    android:title="@string/menu_news"/>

<item
    android:id="@+id/dryiceItem"
    android:icon="@drawable/dryice_tab"
    android:title="@string/menu_dryice"/>

</menu>

并可以像这样设置menuItem的意图:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

    case R.id.newsItem:
        // start News activity
        //write your intent here.
        break;
    case R.id.dryiceItem:
                   //start another activity
                   //write your intent here.
         break; 
            }
    }

标签:android,android-layout,android-menu
来源: https://codeday.me/bug/20190629/1331151.html