String-Array中的Android粗体文本

时间:2014-06-16 19:45:09

标签: java android android-viewpager arrays

我需要在字符串数组中加粗一些文本,其中每个项目都在ViewPager中使用。我正在使用getTextArray()从xml文件中获取格式化文本,并且无法将其转换为String以便能够在ViewPager中使用。

这是我最近尝试过的,但它删除了格式:

CharSequence[] arr = getResources().getTextArray(R.array.array);

String[] arrString = new String[arr.length];
int i=0;
for(CharSequence ch: arr){
    arrString[i++] = ch.toString(); 
}

for (String s : arrString) {
    mArrayList.add(s);

}

XML

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="array">
        <item><b>bold text</b>|<i>italic text</i></item>
        <item>Second Item</item>
        <item>Thrid Item</item>
    </string-array>
</resources>

相关的ViewPager

ViewPager mViewPager;
ArrayList<String> mArrayList = new ArrayList<String>();
mViewPager = (ViewPager) findViewById(R.id.pager);
MyAdapter mAdapter = new MyAdapter(context, mArrayList);
mViewPager.setAdapter(mAdapter);

我感谢任何建议,谢谢

1 个答案:

答案 0 :(得分:3)

String个对象不能包含嵌入式标记(即字体,颜色,样式)。当您使用此代码时:

for(CharSequence ch: arr){
    arrString[i++] = ch.toString(); 
}

您丢失了所包含资源的标记信息。

您只需更改Adapter即可接收ArrayList<CharSequence>,并将这些值直接放入TextViews(或适配器当前放置的位置)。