【问题标题】:How to get android tab text in one language always如何始终以一种语言获取 android 标签文本
【发布时间】:2018-01-15 19:51:38
【问题描述】:

我的应用程序有 3 种语言,对于我的一种要求,无论我的应用程序的语言是什么,我都需要以英语获取标签文本。有什么方法可以不使用 if 案例

【问题讨论】:

标签: android tabs


【解决方案1】:

无论您正在编辑的values-*,您的资源中的选项卡文本都可以只包含英文字符串。

【讨论】:

    【解决方案2】:

    我有一个简单的解决方案,为选项卡提供一个静态字符串,如果您查看下面示例代码中的“setupViewPager”方法,您会发现选项卡被命名为“ONE”、“TWO”、“THREE”。

    (来源:https://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);
    
        tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);
    }
    
    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new OneFragment(), "ONE");
        adapter.addFragment(new TwoFragment(), "TWO");
        adapter.addFragment(new ThreeFragment(), "THREE");
        viewPager.setAdapter(adapter);
    }
    
    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();
    
        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }
    
        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }
    
        @Override
        public int getCount() {
            return mFragmentList.size();
        }
    
        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }
    
        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-12-27
      • 1970-01-01
      • 2012-10-17
      • 2012-06-26
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多