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