Я хочу добавить пользовательский xml, имеющий URL-адрес в папку res/values. Я могу добавить файл, но как читать его содержимое с помощью getResources()?
Android Как добавить собственный XML файл в res/values и как зарегистрировать customvalues.xml с помощью системы
Ответ 1
Обновление: Теперь это больше не работает (но оно привыкло), и вы не можете создавать свои собственные пользовательские типы в android. Только теперь доступны стандартные доступные типы ресурсов.
Таким образом, единственный способ добиться чего-то подобного - иметь свой отдельный файл, как было предложено, url.xml и иметь все ваши URL-адреса в этом файле, чтобы он не смешивался с другими Строками. Это просто улучшает читаемость и ремонтопригодность, AFAIK.
Теперь элемент URL выглядит следующим образом:
<item name="myUrl" type="string">http://myUrl.com</item>
И вам нужно получить доступ обычным способом:
String myurl = getResources().getString(R.string.myUrl);
Исходный ответ:
Попробуйте что-то вроде этого: -
url.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="myUrl" type="urls">http://myUrl.com</item>
</resources>
И в своей деятельности сделайте так: -
String s = getResources().getString(R.urls.myUrl);
Примечание: - Вам не нужно регистрировать xml
в любом месте. Просто убедитесь, что он доступен в папке res/values
.
Snapshot: -
Ответ 2
- Создайте свой собственный XML файл, убедитесь, что он находится в папке res (я протестировал это, поместив его в папку res/values)
- Убедитесь, что все значения, которые вы размещаете в этом XML, имеют стандартный тип.
- Затем вы можете использовать соответствующий вызов R. Например, для integer вы делаете R.integer.YOUR_CUSTOM_XML_VALUE. Не имеет значения, в каком xml это целое число находится, он будет зарегистрирован R, если он находится в папке res.
Ответ 3
Да, вы можете иметь собственный файл: я только что сделал это пару раз. 1) Создайте новый XML файл. 2) Используйте формат файла как обертку для вашего примера:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<item name="languages">
<languages>
<language>
<isocode>
en-UK
</isocode>
<name>
English (UK)
</name>
</language>
</languages>
</item>
</resources>