2017-01-04 17 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

素晴らしい人、それは私のためのソリューションを働いている – Achin

1

getSelectedItemIdを使用して、現在選択されているメニュー項目のIDを取得します。

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

この方法は、Androidサポートライブラリ25.3.0から入手可能で始まりました。

4

は、最初にある項目を選択取得し、getMenu().findItem(int itemId)

bottomNavigationView.getMenu().findItem(bottomNavigationView.getSelectedItemId()) 
関連する問題