Страница 1 из 1

Массив строк и форматированный вывод

Добавлено: 23 ноя 2014, 23:14
MaxGR
Привет.
Столкнулся с такой проблемой.

Имеем в ресурсах массив форматированных строк с параметрами.
res\values\strings.xml

Код: Выделить всё

<string-array name="strMessage" formatted="false">
    <item>Значение первое: %1$s\nЗначение второе: %2$s\nЗначение третье: %3$s</item>
    <item>Строка первая: %1$s\nСтрока вторая: %2$s\nСтрока третья: %3$s</item>
    <item>Параметр первый: %1$s\nПараметр второй: %2$s\nПараметр третий: %3$s</item>
</string-array>
Проблема в том, что не пойму как мне работать с этим массивом. Пробовал так обратиться к строке массива i:

Код: Выделить всё

int i = 2;
String strMess = (String)getResources().getStringArray(R.array.strMessage, "Один", "Два", "Три")[i];
При компиляции получаю, что здесь синтаксическая ошибка и что в getStringArray() можно передать только одно значение R.array.strMessage и никаких других.

Если бы это было изначально не массивом строк, а просто строкой, то такой вариант прокатил бы, но с массивом не пойму как необходимо обращаться к строкам массива и передавать им параметры. Поделитесь, пожалуйста, советом...

Re: Массив строк и форматированный вывод

Добавлено: 24 ноя 2014, 01:32
doter.ua
ArrayList<String> myArr = getResources().getStringArray(R.array.strMessage);
myArr - элемент

Re: Массив строк и форматированный вывод

Добавлено: 24 ноя 2014, 11:53
MaxGR
Это точно так? По-моему это подходит для массива обычных строк, а не форматированных строк.
Иначе куда передавать строковые параметры для форматированного вывода "Один", "Два", "Три"?

Re: Массив строк и форматированный вывод

Добавлено: 24 ноя 2014, 13:21
MaxGR
Или в дальнейшем с элементами этого полученного массива myArr обращаться как с форматированными строками?

Код: Выделить всё

String strMess = (String)String.format(myArr[i], "Один", "Два", "Три");

Re: Массив строк и форматированный вывод

Добавлено: 24 ноя 2014, 13:38
MaxGR
Получилось так:

Код: Выделить всё

int i = 2; 
String strMess = String.format(getResources().getStringArray(R.array.strMessage[i], "Один", "Два", "Три"));