У меня есть навигационное представление, в котором я программно добавляю элементы, и я использую и arrayList для их хранения, а затем удаляю их, когда я добавляю элементы в первый раз и удаляю их, все работает нормально, но когда я добавляю снова элементы после того, как я их удалил, они удаляются, но они все еще видны в окне навигации. Как решить эту проблему?
Это мой код:
int position = navViewArray.findItemString(checkItemTitle);
if (position == -1) {
Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
} else {
try {
MenuItem prevMenuItem = navigationView.getMenu().getItem(position + 2);
prevMenuItem.setChecked(true);
prevMenuItem.setCheckable(true);
prevMenuItem.setVisible(true);
NavItem navItem = navItems.get(position);
navItems.remove(navItem);
navViewArray.removeItem(navItem);
Toast.makeText(this, " List " + navItem.getName() + " deleted ", Toast.LENGTH_SHORT).show();
prevMenuItem.setVisible(false);
if (!navItems.isEmpty()) {
NavItem prevNavItem = navItems.get(navItems.size() - 1);
Toast.makeText(this, "PrevItem: " + prevNavItem.getName(), Toast.LENGTH_SHORT).show();
checkItemTitle = prevNavItem.getName();
ListFragment listFragment = new ListFragment();
/* store data in arguments Bundle */
getSupportActionBar().setTitle(prevNavItem.getName());
Bundle args = new Bundle();
args.putString(KEY_LIST_NAME, prevNavItem.getName());
listFragment.setArguments(args);
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_container, listFragment)
.commit();
} else {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_container, new InboxFragment())
.commit();
getSupportActionBar().setTitle(INBOX__TEXT_CONSTANT);
checkItemTitle = INBOX__TEXT_CONSTANT;
MenuItem lastPrevMenuItem = navigationView.getMenu().getItem(2);
lastPrevMenuItem.setVisible(true);
if (lastPrevMenuItem.isVisible()){
setVisible(false);
Toast.makeText(this, "Else called " + lastPrevMenuItem.getTitle(), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Not visible", Toast.LENGTH_SHORT).show();
//else is called and it says that the item is not visible
}
}
} catch (IndexOutOfBoundsException e) {
Toast.makeText(this, "Error", Toast.LENGTH_LONG).show();
}
}
}