Intereting Posts
После отправки данных на сервер, как печатать ответ в следующем действии? Android – как предотвратить загрузку веб-страниц при отсутствии подключения к Интернету Отправить действие мультимедиа на Android Оператор switch с аргументом string в качестве аргумента в Android FastScroller только прокручивает назад к первому элементу, а не к виду заголовка Какова связь между Looper, Handler и MessageQueue в Android? Просмотр рецензента или переориентация с картонным SDK на Unity Нет такого свойства: sonatypeUserName для класса: org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer Почему в этом случае говорят, что «растровое изображение не может быть разрешено к типу»? Как получить доступ к ресурсу с динамическим именем в моем случае? Нужна помощь в настройке Android TableLayout Создайте xml-файл и сохраните его во внутреннем хранилище android Получить доступ к данным, связанным с проектом, из команды Gradle У меня возникли проблемы с добавлением OpenCV в новый Android-проект Не удалось запустить приложение Android в Eclipse; Внутренняя ошибка произошла во время: «Запуск myApp»

Объединить несколько строк в XML?

Я прохожу через это Как конкатенировать несколько строк в android XML? И в конце есть комментарии, которые

For clarity, Its works:

<string name="title">@string/app_name</string>.Анджей Дуй

Я сделал свой собственный пример, но он не работает. Так что Andrzej ошибается, или я делаю что-то неправильно в своем коде.

R.strings.bbb должен содержать "bbb aaa" но вместо "bbb aaa" он содержит "bbb @strings/aaa"

 <string name="aaa">aaa</string> <string name="bbb">bbb @strings/aaa</string> 

Запрос:

Можно ли выполнить некоторую конкатенацию только в xml, без изменений исходного кода?

Причина, почему я не хочу редактировать код, потому что я использую эти строки в xml/preferences.xml

Например:

<ListPreference android:key="key_bbb" android:title="@string/bbb" ….

Если вы знаете, что я имею в виду, здесь нет возможности использовать что-то вроде этого

 String title = res.getString(R.string.title, appName); 

Solutions Collecting From Web of "Объединить несколько строк в XML?"

Нет, я не думаю, что ты можешь объединиться.

 <string name="aaa">aaa</string> <string name="bbb">bbb @string/aaa</string> 

Выход – bbb @ string / aaa

Если вы это сделаете,

 <string name="aaa">aaa</string> <string name="bbb">@string/aaa bbb</string> -> This won't work it will give compilation error 

Потому что здесь он будет искать строку со ссылкой @string/aaa bbb которая не существует.

Проблема в вашем случае была, вы, где используете @strings/aaa которые должны быть @string/aaa

Нет, вы не можете конкатенировать строки в XML, но вы можете определить ресурсы XML.

 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE resources [ <!ENTITY appname "MyAppName"> <!ENTITY author "MrGreen"> ]> <resources> <string name="app_name">&appname;</string> <string name="description">The &appname; app was created by &author;</string> </resources> 

Первоначальный ответ был отправлен здесь .

В XML это невозможно, но с использованием кода Java вы можете использовать метод String.format() .

 <string name="aaa">aaa</string> <string name="bbb">bbb %1$s</string> 

В java-коде

 String format = res.getString(R.string.bbb); String title = String.format(format, res.getString(R.string.aaa)); 

Таким образом, заголовок будет полной строкой после конкатенации двух строк.

Вы можете объединить ресурсы в gradle.build:

  resValue "string", "TWITTER_CALLBACK", "twitter_callback_" + applicationId 

Нет, но возможно в файле xslt с функцией concat:

 <html> <body> <ul> <xsl:for-each select="stock"> <xsl:if test="starts-with(@symbol, 'C')"> <li> <xsl:value-of select="concat(@symbol,' - ', name)" /> </li> </xsl:if> </xsl:for-each> </ul> </body> </html> 

http://www.java2s.com/Tutorial/XML/0100__XSLT-stylesheet/concatfunction.htm