2017-01-04 3 views
2

Я использовал метод BottomNavigationView для переключения фрагментов. Как получить выбранный пункт меню, чтобы предотвратить повторное открытие фрагмента?BottomNavigationView - Как получить выбранный пункт меню?

 BottomNavigationView bottomNavigationView = (BottomNavigationView) 
       findViewById(R.id.bottom_navigation); 

     bottomNavigationView.setOnNavigationItemSelectedListener(
       new BottomNavigationView.OnNavigationItemSelectedListener() { 
        @Override 
        public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
         switch (item.getItemId()) { 
          case R.id.action_1: 
           // open fragment 1 
           break; 
          case R.id.action_2: 
           // open fragment 2 
           break; 
          case R.id.action_3: 
           // open fragment 3 
           break; 
         } 
         return false; 
        } 
       }); 
    } 
+0

Вы можете быть более четкое представление о "предотвратить повторное открытие фрагмента? Что вы ожидаете от пункта навигации (меню)? –

ответ

1

Решение:

private int getSelectedItem(BottomNavigationView bottomNavigationView){ 
     Menu menu = bottomNavigationView.getMenu(); 
     for (int i=0;i<bottomNavigationView.getMenu().size();i++){ 
      MenuItem menuItem = menu.getItem(i); 
      if (menuItem.isChecked()){ 
       return menuItem.getItemId(); 
      } 
     } 
     return 0; 
    } 
+0

Он работает? – Redman

+0

есть. он работает – phnmnn

+0

awesome man, это рабочие решения для меня – Achin

1

Получить выбранный пункт меню ID с помощью getSelectedItemId:

int selectedItemId = bottomNavigationView.getSelectedItemId(); 
MenuItem selectedItem = bottomNavigationView.getMenu().findItem(selectedItemId); 

Этот метод начал быть доступны из Android поддержки библиотеки 25.3.0.

4

Получить выбранный пункт на первом, а затем getMenu().findItem(int itemId)

bottomNavigationView.getMenu().findItem(bottomNavigationView.getSelectedItemId()) 

 Смежные вопросы

  • Нет связанных вопросов^_^