Мое приложение содержит bottomNavigationView и TabLayout в файле activity_main.xml. Выбранный фрагмент навигации выбирается с помощью переключателя, а вкладки программно именуются следующим образом:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.addTab(tabLayout.newTab().setText("A"));
tabLayout.addTab(tabLayout.newTab().setText("B"));
tabLayout.addTab(tabLayout.newTab().setText("C"));
BottomNavigationView bottomNavigationView = (BottomNavigationView)
findViewById(R.id.navigation);
bottomNavigationView.setOnNavigationItemSelectedListener
(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.navigation_national:
selectedFragment = ItemOneFragment.newInstance();
break;
case R.id.navigation_international:
selectedFragment = ItemTwoFragment.newInstance();
break;
case R.id.navigation_blackboard:
selectedFragment = ItemThreeFragment.newInstance();
break;
}
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_layout, selectedFragment);
transaction.commit();
return true;
}
});
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_layout, ItemOneFragment.newInstance());
transaction.commit();
}
}
Теперь я хочу изменить названия вкладок в зависимости от выбранной опции bottomNavigation. Почему я не могу просто добавить addText (""); заявления к разным случаям?
Да, мне это хорошо известно, но теперь я хочу использовать setText (""); оператор не выходит за рамки случаев, поэтому вкладки переименовываются при выборе другой опции bottomMenu




tabLayout.getTabAt(item.getItemId()).setText("Ds");
Не могли бы вы привести мне пример, как это использовать здесь?
Но если у меня три вкладки, он просто переименовывает первую, вторую или третью в зависимости от того, что выбрано в нижнем меню, не так ли?
на каждом case добавьте эту строчку, да
Когда я просто устанавливаю положение вручную, оно работает, не нужно его передавать. Спасибо за помощь
вы уже установили имена вкладок ...