我有几种情况,我的字符串在strings.xml中很长并且有多行完成\n.
编辑非常烦人,因为它在Eclipse中很长。
有没有更好的方法来编辑它,看起来它将在稍后的文本视图中显示,即换行符换行符和多行编辑模式中的文字?
答案 0 :(得分:14)
两种可能性:
XML允许字符串中的文字换行符:
<string name="breakfast">eggs
and
spam</string>
您只需编辑XML代码,而不是使用漂亮的Eclipse GUI
assets
目录中的所有内容都可以作为应用程序代码的输入流。
您可以使用AssetManager.open()
,AssetManager
Resources.getAssets()
实例和View view;
//before calling the following, get your main
//View from somewhere and assign it to "view"
String getAsset(String fileName) throws IOException {
AssetManager am = view.getContext().getResources().getAssets();
InputStream is = am.open(fileName, AssetManager.ACCESS_BUFFER);
return new Scanner(is).useDelimiter("\\Z").next();
}
来访问这些资产的文件输入流,并且......您知道吗,这里是Java典型的非常详细的代码简单的任务:
Scanner
使用{{1}} is obviously a shortcut m(
答案 1 :(得分:11)
当然,您可以在XML中添加换行符,但这不会给您换行。在 strings.xml 中,与所有XML文件一样,Newlines in string content are converted to spaces。因此,声明
<string name="breakfast">eggs
and
spam</string>
将呈现为
eggs and spam
在TextView中。幸运的是,有一种简单的方法可以在源代码和输出中使用换行符 - 使用\ n作为预期的输出换行符,并转义源代码中的实际换行符。上述声明成为
<string name="breakfast">eggs\n
and\n
spam</string>
呈现为
eggs
and
spam
答案 2 :(得分:5)
对于任何寻找允许XML String内容具有多行可维护性并在TextView输出中呈现这些多行的工作解决方案的人,只需将\n
放在新行的开头< / em> ... 不是在上一行的末尾。如前所述,XML资源内容中的一个或多个新行被转换为一个空的空格。前导,尾随和多个空格都被忽略。我们的想法是将空白空间放在上一行的末尾,并将\n
放在下一行内容的开头。这是一个XML String示例:
<string name="myString">
This is a sentence on line one.
\nThis is a sentence on line two.
\nThis is a partial sentence on line three of the XML
that will be continued on line four of the XML but will be rendered completely on line three of the TextView.
\n\nThis is a sentence on line five that skips an extra line.
</string>
这在文本视图中呈现为:
This is a sentence on line one.
This is a sentence on line two.
This is a partial sentence on line three of the XML that will be continued on line four of the XML but will be rendered completely on line three of the TextView.
This is a sentence on line five that skips an extra line.
答案 3 :(得分:3)
您可以轻松使用&#34;&#34;甚至可以从其他语言中写出任何单词而不会出错:
<string name="Hello">"Hello
world!
سلام
دنیا!"
</string>