如何使用字符串资源而不是硬编码字符串设置ViewPager选项卡标题

时间:2018-06-17 08:31:17

标签: android string fragmentpageradapter

我是Android和Android的新手。堆栈溢出 - 如果我的问题很愚蠢,请提前道歉!

我有一个使用TabLayout / ViewPager和FragmentPagerAdapter的四个标签的简单应用程序。我可以使用硬编码字符串显示标签标题,但是当我尝试使用字符串资源设置它们时,我的代码返回字符串的索引值,而不是实际字符串,如截图所示:

enter image description here

这是我的FragmentPagerAdapter类的代码:

    @media screen (min-width: 320px) and (max-width: 414px) {
    body {
        background-color: yellow;
        color: white;
    }
}
and

   @media screen and (max-width: 600px) {
    body {
        background-color: red;
        color: white;
    }
}

有人可以帮我理解我哪里出错吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

你必须更换这一行

 private String[] tabTitles = new String[]{String.valueOf(R.string.tab_title_1),String.valueOf(R.string.tab_title_2),String.valueOf(R.string.tab_title_3),String.valueOf(R.string.tab_title_4)};

这一行

 private String[] tabTitles = new String[]{getString(R.string.tab_title_1),getString(R.string.tab_title_2),getString(R.string.tab_title_3),getString(R.string.tab_title_4)};

或使用

private String[] tabTitles = new String[]{getResources().getString(R.string.tab_title_1),getResources().getString(R.string.tab_title_2),getResources().getString(R.string.tab_title_3),getResources().getString(R.string.tab_title_4)};

getString()需要context

答案 1 :(得分:0)

您可以通过调用以下方法从资源值获取字符串: 。的的getContext()getResources()的getString(R.string.page1_title);

和page1_title是 string.xml 文件中的字符串值: 标题示例

这是一个如何使用title:

将片段添加到ViewPagerAdapter的示例

private void setupViewPager(final ViewPager viewPager){

    final ViewPagerAdapter adapter = new viewPagerAdapter(getChildFragmentManager());

        adapter.addFragment(Fragment1.newInstance(), getResources().getString(R.string.tab1_title));
        adapter.addFragment(Fragment2.newInstance(), getResources().getString(R.string.tab2_title));
        adapter.addFragment(Fragment3.newInstance(), getResources().getString(R.string.tab3_title));


    viewPager.setAdapter(adapter);
}