2010-12-20 23 views
28

Me preguntaba si podría colocar XML dentro de /res/values/strings.xml? Pregunto esto porque estoy buscando el archivo de datos XML para mi aplicación, si aún no existe, entonces lo crea a partir de los contenidos por defecto que se incluirán como recurso de cadena.XML dentro de un recurso de cadena de Android?

Eclipse intenta cambiar las etiquetas menores que y mayores que sus correspondientes entidades HTML al usar la GUI para editar las cadenas. ¿El eclipse está en el camino correcto? Porque creo que también se escribirá en mi archivo como entidades HTML. ¿Puedo usar getText() en lugar de getString() para convertir las entidades nuevamente en etiquetas?

Gracias por cualquier consejo que pueda dar.

Respuesta

58

Sí se puede, sólo tiene que utilizar CDATA

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

+2

Sí, eso es exactamente lo que necesitaba, sé que parece poco ortodoxo, usando un recurso de cadena para XML, pero recién estoy comenzando y solo estoy escribiendo 20 caracteres o más. – Olical

2

Obviamente no funcionará a menos que escape caracteres como < o> o &.

Si codifica el XML, debería funcionar bien, pero probablemente no sea la mejor manera de hacerlo. Yo preferiría el recurso binario.


Para poner en string.xml, se puede codificar utilizando

String encoded = URLEncoder.encode(xml); 

y decodificación es lo contrario.

Para binario, lo coloca en la carpeta RAW y obtiene un flujo binario y lo convierte en cuerda y carga.

+0

Así que cuando se escribe, '' < por ejemplo, debería ser convertido en '<'? Y por recurso binario, ¿sería eso algo en la carpeta sin procesar sobre la cual copiaste para crear tu archivo de datos? – Olical

+0

Ver mi actualización por favor. – Aliostad

1

he hecho de esta manera:

Deja tus cadena en strings.xml

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

Cómo utilizar:

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

Hecho

Cuestiones relacionadas