Вы надуваете меню дважды.Один раз перед оператором if и один раз внутри оператора if
toolbar.inflateMenu(R.menu.booklist_mylibrary_menu);
Вы вызываете это перед операторами if и внутри операторов if.
Удалите его из оператора if.
Resources resources = getResources();
if (resources.getString(R.string.app_name).equalsIgnoreCase("KPM")) {
MenuItem beaconIconMenuItem = toolbar.getMenu().findItem(R.id.booklist_mylibrary_menu_beacon);
beaconIconMenuItem.setVisible(false);
//if kpm app , hide filter icon on toolbar
} else if (resources.getString(R.string.app_name).equalsIgnoreCase("KPM")) {
MenuItem filterMenuItem = toolbar.getMenu().findItem(R.id.common_menu_filter);
filterMenuItem.setVisible(false);
//if kpm app , hide new collection selection under settings icon on toolbar
} else if (resources.getString(R.string.app_name).equalsIgnoreCase("KPM")) {
MenuItem newcollectionMenuItem = toolbar.getMenu().findItem(R.id.booklist_mylibrary_menu_addtab);
newcollectionMenuItem.setVisible(false);
}
Похоже, вы делаете только else-if
на kpm
, поэтому я просто преобразую его в коммутатор и уберу ваш код.теперь это должно выглядеть как
private void setupToolbar() {
toolbar = (Toolbar) getView().findViewById(R.id.toolbar);
String appName = getResources().getString(R.string.app_name).toLowerCase();
toolbar.setTitle(appName.equals("pnm e-reader") ? "My Books" : getString(R.string.booklist_drawer_mylibrary));
toolbar.inflateMenu(R.menu.booklist_mylibrary_menu);
switch (appName) {
case "kpm":
Menu menu = toolbar.getMenu();
MenuItem beaconIconMenuItem = menu.findItem(R.id.booklist_mylibrary_menu_beacon);
MenuItem filterMenuItem = menu.findItem(R.id.common_menu_filter);
MenuItem newcollectionMenuItem = menu.findItem(R.id.booklist_mylibrary_menu_addtab);
beaconIconMenuItem.setVisible(false);
newcollectionMenuItem.setVisible(false);
filterMenuItem.setVisible(false);
break;
}
}