Используйте строки с заполнителем в XML-макете Android - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть строка с заполнителем, например,

<string name="str_1">Hello %s</string>

Я хочу использовать это в макете xml как android: text = "@ string / str_1". Есть ли способ использовать это в макете XML для заполнения заполнителя ? Заранее спасибо. Я уже знаю String.format (str, str ...) в Java / Kotlin, но я хочу использовать это в макете XML без привязки данных.

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Вы можете использовать что-то вроде этого. Запишите свою строку в свой (strings.xml), объявив в ней строковую переменную (% 1 $ s). Для десятичного числа мы используем (% 2 $ d).

<string name="my_string">My string name is %1$s</string>

А внутри кода Android (yourFile.java) используйте эту строку там, где вы хотите.

String.format(getResources().getString(R.string.my_string), stringName);

Это не очень хороший ответ, но он может помочь вам понять, как начать работу.

Спасибо.

1 голос
/ 10 апреля 2019

Невозможно отформатировать ваши строки непосредственно в вашем XML.Внутри вашего кода вы можете использовать как String.format, так и context.getString(), чтобы получить и отформатировать вашу строку.

Если вы хотите показать что-то только в XML и не иметь его в окончательной сборке (только ввремя компиляции), вы также можете использовать tools: пространство имен, как показано ниже:

<TextView 
...

    tools:text="Hello, this is a test"

/>

Это появится только в редакторе макета и не будет иметь никакого эффекта в APK.Его также можно использовать и для других полей, например tools:visiblity.

...