简体   繁体   English

Android –将setText设置为Tab的情况

[英]Android – setText to Tabs in a switch case Statement

My app contains a bottomNavigationView and a TabLayout in the activity_main.xml. 我的应用程序在activity_main.xml中包含bottomNavigationView和TabLayout。 The selected Navigation Fragment is chosen with a switch-case and the tabs are named programmatically like this: 所选的导航片段是通过开关盒选择的,并且选项卡的命名方式如下:

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();

    }

}

Now I want to change the tab names depending to the selected bottomNavigation option. 现在,我想根据所选的bottomNavigation选项更改选项卡名称。 Why can't I just add the addText(""); 为什么我不能只添加addText(“”); statements to the different cases? 对不同情况的陈述?

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM