【问题标题】:Android Return Line (\n) in String字符串中的 Android 返回行 (\n)
【发布时间】:2016-01-09 06:24:59
【问题描述】:

在android中,可以使用XML创建String资源

<string name="name">data</string>

要创建一个新行,可以使用\n。但是,如果用户亲自将数据输入到 EditText 并包含 \n,则文字将保存到 String,当文字再次显示在 TextView 中时,结果将如下所示:

Line 1\nLine2

为什么\n 不适用于用户编写的字符串?

我的最终目标是能够让用户在字符串中键入 \n,以确保 String 显示在多行中。

这将如何实现?提前致谢!

【问题讨论】:

  • 尝试在textView布局中设置android:maxLines="4"

标签: android string android-edittext newline textview


【解决方案1】:

使用这个:

TextView view = your text view;
view.setSingleLine(false);

view.setText("first line" + "\n" + "second line" + "\n" + "third line");

【讨论】:

  • 在 \n 处分割字符串的最佳方法是什么?应该只使用基本的 .split() 工作吗?
  • 稍后我将不得不尝试一下。感谢您的回复。
  • @26hmkk 没问题。如果有帮助,请投票。
  • 感谢您的帮助!
【解决方案2】:

你在 textView 中的 setText() 怎么样。

试试这个...

TextView view = your text view;
view.setSingleLine(false);
view.setText("first line\n"+"second line\n"+"third line");

【讨论】:

    【解决方案3】:

    System.getProperty("line.separator")
    

    你会得到一个字符串,它会产生一个新行。 我会用这个表达式替换 \n。

    【讨论】:

      【解决方案4】:

      在输入字段中输入的文本用作实际文本。这意味着,当用户输入Hello \n World 并且代码调用getText().toString() 时,实际返回的是:Hello \\n World 这意味着它是实际的斜杠符号而不是"carriage return" 符号。

      我不相信 android 有任何内置 API 可以为您提供用户输入的实际代码,这意味着您必须自己编写该代码。如果您只需要 \n 作为回车符,这很简单:

      getText().toString().replace("\\n", "\n");
      

      【讨论】:

        猜你喜欢
        • 2011-01-10
        • 2021-12-17
        • 2020-09-15
        • 2017-03-21
        • 2013-10-28
        • 2016-10-23
        • 2016-04-16
        • 2015-09-04
        • 1970-01-01
        相关资源
        最近更新 更多