2014-01-24 2 views
1

Приложение, над которым я работаю, очень тяжелое и имеет несколько расширяемых списков, поэтому я использую многомерные массивы, чтобы заполнить дочерние представления. Я хочу выделить некоторые части текста следующим образом: Пример 1: Это пример. Так, чтобы сделать это, у меня есть это в моем strings.xml:Html.fromHtml() форматирование текста и многомерные массивы

<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

, что это больше [], чем [] [] – njzk2

+0

Мой плохой, редактируемый. – Racepace

ответ

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; 
} 

И затем вызвать его с помощью двумерного массива идентификаторов ресурсов:

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); 
Смежные вопросы