首页 > 解决方案 > Android – setText to Tabs in a switch case Statement

问题描述

我的应用在activity_main.xml 中包含一个bottomNavigationView 和一个TabLayout。使用 switch-case 选择选定的导航片段,并且选项卡以编程方式命名,如下所示:

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(""); 不同情况的陈述?

标签: javaandroid

解决方案


tabLayout.getTabAt(item.getItemId()).setText("Ds");


推荐阅读