Переменные Android, в строк.XML
где-то я читал, как использовать переменные в XML-документ. Они сказали, что все очень просто. Я успешно использовал его таким образом в строках Android.XML-файл. Я использовал его таким образом целый день, пока вдруг планшет перестал разбирать его и перестал относиться к нему как к переменной.
я использовал его таким образом:
<resources>
<string name="some_string">string1</string>
<string name="another_string"> {$some_string} trolololo </string>
</resources>
и в java доступ к нему через: getApplicationContext ().getString (R. strings.another_string);
getApplicationContext().getString(R.strings.another_string);
в вывод, который я использовал для получения строки типа:
string1 trolololo
и теперь я получаю только:
{$some_string} trolololo
кто-нибудь знает, что случилось? Я знаю, что XML Android может отличаться от стандартного XML,но он работал. Аууу... Спасибо за любой совет.
3 ответов
Это решит вашу проблему:
<resources>
<string name="some_string">string1</string>
<string name="another_string">@string/some_string trolololo</string>
</resources>
Теперь вывод getApplicationContext().getString(R.strings.another_string)
будет string1 trolololo
.
предполагая, что вы хотите передать строковое значение в качестве параметра в another_string
тогда ваша строка не очень хорошо отформатирована для получения этого аргумента, и если вы попытаетесь ее использовать, ваш вывод будет {$some_string} trolololo
.
Если вам нужно Отформатировать строки с помощью строку.строка формата, Объект...), то вы можете сделать это, поместив свои аргументы формата в строковые ресурсы.
<resources>
<string name="some_string">string1</string>
<string name="another_string">%1$s trolololo</string>
</resources>
теперь вы можете форматировать строку с аргументами из ваше приложение выглядит так:
String arg = "It works!";
String testString = String.format(getResources().getString(R.string.another_string), arg);
Log.i("ARG", "another_string = " + testString);
при этом выходная строка будет another_string = It works! trolololo
.
взгляните на официальную документацию разработчиков Android,здесь.
Я не уверен, как первая начальная вещь, которую вы сделали, работала с фигурными скобками, но я столкнулся с этой проблемой раньше и не смог найти решение..
теперь я вызываю эти строки отдельно и объединяю их во время выполнения.