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

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
MaxGR
Сообщения: 4
Зарегистрирован: 23 ноя 2014, 22:18

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

Сообщение MaxGR » 23 ноя 2014, 23:14

Привет.
Столкнулся с такой проблемой.

Имеем в ресурсах массив форматированных строк с параметрами.
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 и никаких других.

Если бы это было изначально не массивом строк, а просто строкой, то такой вариант прокатил бы, но с массивом не пойму как необходимо обращаться к строкам массива и передавать им параметры. Поделитесь, пожалуйста, советом...
Последний раз редактировалось MaxGR 24 ноя 2014, 12:00, всего редактировалось 1 раз.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

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

Сообщение doter.ua » 24 ноя 2014, 01:32

ArrayList<String> myArr = getResources().getStringArray(R.array.strMessage);
myArr - элемент
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

MaxGR
Сообщения: 4
Зарегистрирован: 23 ноя 2014, 22:18

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

Сообщение MaxGR » 24 ноя 2014, 11:53

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

MaxGR
Сообщения: 4
Зарегистрирован: 23 ноя 2014, 22:18

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

Сообщение MaxGR » 24 ноя 2014, 13:21

Или в дальнейшем с элементами этого полученного массива myArr обращаться как с форматированными строками?

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

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

MaxGR
Сообщения: 4
Зарегистрирован: 23 ноя 2014, 22:18

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

Сообщение MaxGR » 24 ноя 2014, 13:38

Получилось так:

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

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

Ответить