First of all, you can simplify the if checked else statement for
item.setChecked(!item.isChecked())
That way, it will always switch it from true → false and vice versa.
But the problem is that you have radio lenses, which makes the above statement, does the group check, but you want the item checked.
To get the behavior you're looking for, you can use item.getSubmMenu() and then use the setChecked method for the specific subMenuItem you want.
For instance:
//This will refer to the default, ascending or descending item. MenuItem subMenuItem = item.getSubMenu().getItem(INDEX_OF_ITEM); //Check or uncheck it. subMenuItem.setChecked(!subMenuItem.isChecked());
source share