Переменные 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,здесь.


Я не уверен, как первая начальная вещь, которую вы сделали, работала с фигурными скобками, но я столкнулся с этой проблемой раньше и не смог найти решение..

теперь я вызываю эти строки отдельно и объединяю их во время выполнения.