Подтвердить что ты не робот

XML в текстовом ресурсе Android?

Мне было интересно, могу ли я разместить XML внутри /res/values/strings.xml? Я спрашиваю об этом, потому что я проверяю файл данных XML для своего приложения, если он еще не существует, он создает его из содержимого по умолчанию, которое будет содержаться в виде строкового ресурса.

Eclipse пытается изменить меньше и больше, чем теги, на соответствующие им объекты HTML при использовании графического интерфейса для редактирования строк. Затмение на правильном пути? Потому что я должен думать, что он будет записан в мой файл как объекты HTML тоже. Могу ли я использовать getText() вместо getString() для преобразования объектов обратно в теги?

Спасибо за любые советы, которые вы можете дать.

4b9b3361

Ответ 1

Да, вы можете просто использовать CDATA

<string name="stringName1"><![CDATA[<html>bla</html>]]></string>

Ответ 2

Очевидно, что это не сработает, если вы не избежите символов там, таких как < или > или &.

Если вы кодируете XML, он должен работать нормально, но, вероятно, не лучший способ сделать это. Я бы предпочел двоичный ресурс.


Для размещения в файле string.xml вы можете кодировать, используя

String encoded = URLEncoder.encode(xml);

И декодирование противоположное.

Для двоичного файла вы поместите его в папку RAW, и вы получите двоичный поток и поменяете его на строку и загрузите.

Ответ 3

Я сделал так:

Поместите строку в stringings.xml

<string name="my_string"><![CDATA[Your long text here]]></string>

Как использовать:

<TextView
    android:id="@+id/textView"
    android:text="@string/my_string"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

Готово