Intereting Posts
Выполнить код в основном потоке в Android без доступа к активности? Автоматический сброс буфера при использовании OpenGL на Android Ошибка авторизации API календаря Google Как получить текущий год в Android? Как отключить прокрутку и отскок в списке андроидов? Для запуска dex в процессе, демону Gradle нужна большая куча. В настоящее время он имеет приблизительно 910 МБ Как программно удалить существующее правило, которое было определено в XML? Каков наилучший способ проверки разрешений во время выполнения с использованием архитектуры MVP? Предоставляет ли GoogleAccountCredential токен обновления? Диалог не показывает положительную и отрицательную кнопку Как выделить эту страницу в формате pdf с помощью Ontouchevent в android Как добавить страницу в начало ViewPager? Adt не создает мир приветствия по умолчанию, но в командной строке Получить ширину панели уведомлений Android Ярлык в блоке редактирования в android

Android: Как хранить url в файле ресурсов string.xml?

Я пытаюсь сохранить полный URL-адрес с параметрами запроса:

www.miosito.net?prova&reg=bis 

Но это вызывает проблему, потому что &reg похож на ® Сущность и андроид говорят мне, что и html-объект плохо написан.

Мне нужно это, потому что каждый язык использует полностью другой набор параметров запроса url.

Я попытался использовать [[CDATA[.. ]] но этот синтаксис не понравился синтаксическому анализатору xml.

Проблема не в &req а в & самом себе. Для XML / HTML вы должны использовать & Entity (или & ), но для URL-адресов вы должны использовать строки с URL-кодированием ( см. Docs ), и в этом случае указанная & должна быть заменена на %26 . Итак, ваша финальная строка должна выглядеть так:

http://www.miosito.net?prova%26reg=bis

Храните его следующим образом:

 <string name="my_url">"www.miosito.net?prova&amp;reg=bis"</string> 

Где &amp; Является эквивалентом XML символа амперсанда & .

Процент кодирования может сделать трюк: http://en.wikipedia.org/wiki/Percent-encoding. У вас в основном есть что-то вроде этого: http://www.miosito.net?prova%26reg=bis

Вы можете заключить свой URL в двойные кавычки, например:

 <string name="my_url">"www.miosito.net?prova&reg=bis"</string> 

Это рекомендуемый способ вложения строковых ресурсов в Android.

Обновление 1: ознакомьтесь со следующей ссылкой для получения дополнительной информации:

http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

Обновление 2: @ WebnetMobile.com: правильно, действительно 🙂 '&' обрабатывается особым символом xml и вложение в кавычки не работает. Я опробовал
www.miosito.net?prova%26reg=bis

И это тоже не сработало. Я даже попытался включить его в кавычки, но все равно не работал. Я что-то упускаю ?
Между тем, работает следующее:

<string name="my_url">www.miosito.net%1$sprova%2$sreg=bis</string>

А затем в коде:

Resources resources=getResources();
String url=String.format(resources.getString(R.string.my_url),"?","&") ;

«% 1 $ s» и «% 2 $ s» являются спецификаторами формата, как и в printf в C. «% 1 $ s» для строк, «% 2 $ d» для десятичных чисел, и поэтому на.