Я хочу обновить свой пользовательский интерфейс на основе текущего выбранного элемента из BottomNavigationView
. Проблема в том, что идентификатор элемента будет изменен после выполнения всего метода внутри слушателя, а метод getSelectedItemId()
будет ссылаться на элемент, который был выбран ранее, когда я вызвал его внутри метода updateUI()
.
Как я могу обойти это?
Вот код:
mBottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_baby:
case R.id.navigation_you:
case R.id.navigation_partner: {
updateUI();
return true;
}
default:
return false;
}
}
});
Метод обновления:
Значение mBottomNavigationView.getSelectedItemId()
относится к предыдущему выбору
private void updateUI() {
mBagListAdapter.setList(mPregnancyLab.getBagList(mBottomNavigationView.getSelectedItemId()));
mBagListAdapter.notifyDataSetChanged();
}