Reputation: 304
I am trying to change the visibility of a menu item. This is what I have:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
actionStop = menu.findItem(R.id.action_stop);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.appbar_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if(item.getItemId() == R.id.action_roll){
rollDice();
actionStop.setVisible(true);
}
I am doing this actionStop.setVisible(true);
to change the value.
However I am getting this error:
java.lang.NullPointerException: Attempt to invoke interface method 'android.view.MenuItem android.view.MenuItem.setVisible(boolean)' on a null object reference
Upvotes: 2
Views: 263
Reputation: 1237
Can you try putting this line
actionStop = menu.findItem(R.id.action_stop);
after the menu has been inflated? and try using item to set visibility instead of the variable?
ie,
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.appbar_menu, menu);
actionStop = menu.findItem(R.id.action_stop);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if(item.getItemId() == R.id.action_roll){
rollDice();
item.setVisible(true);
}
Upvotes: 1