【问题标题】:XML within an Android string resource?Android字符串资源中的XML?
【发布时间】:2010-12-20 13:27:34
【问题描述】:

我想知道是否可以将 XML 放在 /res/values/strings.xml 中?我问这个是因为我正在检查我的应用程序的 XML 数据文件,如果它还不存在,那么它会从将包含为字符串资源的默认内容创建它。

当使用 GUI 编辑字符串时,Eclipse 会尝试将小于和大于标记更改为相应的 HTML 实体。日食在正确的轨道上吗?因为我应该认为它也会作为 HTML 实体写入我的文件中。我可以使用getText() 而不是getString() 将实体转换回标签吗?

【问题讨论】:

    标签: android xml string android-resources


    【解决方案1】:

    可以,只需使用 CDATA

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

    【讨论】:

    • 是的,这正是我所需要的,我知道这似乎有点不正统,使用 XML 的字符串资源,但我才刚刚开始,我只写了 20 个左右的字符。
    【解决方案2】:

    除非您在其中转义字符,例如 或 &,否则它显然不起作用。

    如果您对 XML 进行编码,它应该可以正常工作,但可能不是最好的方法。我更喜欢二进制资源。


    为了放入string.xml,你可以使用编码

    String encoded = URLEncoder.encode(xml);
    

    而解码则相反。

    对于二进制,你把它放在 RAW 文件夹中,你会得到一个二进制流,然后将其转换为字符串并加载。

    【讨论】:

    • 所以写的时候,比如<,应该转换成<?并且通过二进制资源,这会是您复制以创建数据文件的原始文件夹中的内容吗?
    【解决方案3】:

    我是这样做的:

    将你的 string 放入 strings.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" />
    

    完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多