我有一个长文本需要输入字符串,到目前为止,它看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="long_text">
xxx
xxx
xxx
xxx
</string>
</resources>
它看起来很糟糕。此外,如果我想更改文本,这会带来一些不便。所以我想要这样的东西:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="long_text"> assets/myfile.txt </string>
</resources>
该长xxx文本将存储在文件夹myfile.txt中的某个文件中。我已经看到了一些通过Java代码而不是strings.xml插入文本的解决方案,但是对我来说太复杂了。谁能帮我这个?
答案 0 :(得分:2)
解决方案主要基于https://alvinalexander.com/android/how-to-store-static-text-in-android-file-res-values
提供的实现如果您担心要管理大量文本,则可以在 strings.xml 文件之外创建独立资源。这将错别字限制为单个文件,即,如果您忘记了某个地方的方括号,它将被隔离到特定的XML文档。
在 res / values 中创建一个名为 strings_longtext.xml 的XML文件,并将单个文本值放在其中。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="very_large_string">
<![CDATA[
Lorem ipsum
Lorem ipsum
Lorem ipsum
Lorem ipsum
Lorem ipsum
Lorem ipsum
]]>
</string>
</resources>
然后,您可以通过类似于普通 strings.xml 文件的上下文访问器访问此字符串。
context.getString(R.string.very_large_string);
您不应将文件名放在 strings.xml 中的原因有多种:
字符串文件的目的是纯字符串,并在其中添加文件名解释是代码味道,随着项目的扩大,将导致痛苦的崩溃。