Jac*_*ack 1 android nullpointerexception android-optionsmenu oncreateoptionsmenu
在我的应用程序中执行某些操作时,我正在更改特定菜单项的可绘制对象。
除了我尝试在 Activity 的 onCreate 方法中执行此操作时,一切都正常。
我正在使用以下方法:
menu.findItem(R.id.favorite).setIcon(R.drawable.ic_action_icons8_star_filled_100);
Run Code Online (Sandbox Code Playgroud)
在 onClick 事件中,它可以完美运行。
但是当我在 onCreate 中使用相同的方法时,它给了我以下错误:
java.lang.NullPointerException: Attempt to invoke interface method 'android.view.MenuItem android.view.Menu.findItem(int)' on a null object reference
Run Code Online (Sandbox Code Playgroud)
这是我用来膨胀的代码 menu
private Menu menu;
--------------------
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.image_details, menu);
this.menu = menu;
return super.onCreateOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢。
您可以使用 onPrepareOptionsMenu(只要菜单即将可见,就会收到一个电话)。您将获得空指针,因为 onCreateOptionsMenu 将在 onCreate 之后调用,因此您的菜单对象将为空。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem favoriteItem = menu.findItem(R.id.favorite);
favoriteItem.setIcon(getResources().getDrawable(R.drawable.drawable.ic_action_icons8_star_filled_100));
return super.onPrepareOptionsMenu(menu);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2282 次 |
| 最近记录: |