我正在处理的应用程序非常重,并且有一些可扩展列表,因此我使用多维数组来填充子视图。 我想加粗文本的某些部分,如下所示: 示例1:这是一个示例。 所以要做到这一点,我在strings.xml中有这个:
<string name="example"><![CDATA[<b>Example 1:</b> This is an example.]]></string>
到我的适配器:
CharSequence example = Html.fromHtml(getString(R.string.example);
想象一下那些,然后我把它们装进我的阵列中:
private CharSequence [][] childview = {
{example, example1, example2, example3};
{example4, example5, example6, example7};
};
问题是,要创建一大堆变量,必须有更好的方法吗?我可以将我的字符串变成字符串数组并使用Html.fromHtml格式将它们装入多维数组中吗?
答案 0 :(得分:0)
你可以写一点实用方法:
public CharSequence [][] fromRes(int[][] resIdMatrix) {
CharSequence[][] result = new CharSequence[resIdMatrix.length][];
int i = 0;
for (int[] resIds : resIdMatrix) {
CharSequence[] row = result[i++] = new CharSequence[resIds.length];
int j = 0;
for (int id : resIds) {
row[j++] = Html.fromHtml(getString(id));
}
}
return result;
}
然后使用二维资源ID数组调用它:
int[][] resIds = {
{R.string.example, R.string.example1, R.string.example2, R.string.example3},
{R.string.example4, R.string.example5, R.string.example6, R.string.example7},
};
CharSequence[][] childview = fromRes(resIds);