如何在Android TextView中添加换行符?

我正在尝试在TextView中添加换行符。

我试过build议\ n但是什么都不做。 这是我如何设置我的文本。

TextView txtSubTitle = (TextView)findViewById(r.id.txtSubTitle); txtSubTitle.setText(Html.fromHtml(getResources().getString(R.string.sample_string))); 

这是我的string: <string name="sample_string">some test line 1 \n some test line 2</string>

它应该显示如下:

 some test line 1 some test line 2 

但它显示如下: some test line 1 some test line 2

我错过了什么吗?

\n为我工作,像这样:

 <TextView android:text="First line\nNext line" 

好吧,算了一下:

 <string name="sample_string"><![CDATA[some test line 1 <br />some test line 2]]></string> 

所以在CDATA包装是必要的,并作为HTML标签添加到里面

感谢大家的帮助!

Android版本1.6不能识别\ r \ n。 而是使用:System.getProperty(“line.separator”)

 String s = "Line 1" + System.getProperty ("line.separator") + "Line 2" + System.getProperty ("line.separator"); 

换行符(\ n) 只有在将string资源值放在引号中才有效:

 <string name="sample_string">"some test line 1 \n some test line 2"</string> 

如果你没有像这样的引号,它不会做线路分割:

 <string name="sample_string">some test line 1 \n some test line 2</string> 

是的,这很容易。

试了以上所有,做了一些我自己的研究导致以下解决scheme渲染换行符转义字符:

 string = string.replace("\\\n", System.getProperty("line.separator")); 
  1. 使用replace方法,您需要过滤转义的换行符(例如'\\ n')

  2. 只有这样,每一个换行符“\ n”转义字符的实例才会被渲染成实际的换行符

在这个例子中,我使用了带有JSON格式数据的Google Apps脚本noSQL数据库(ScriptDb)。

干杯:D

这对我有效

 android:text="First \n Second" 

有两种方法可以解决这个问题。 如果您将string用作原始string,则需要使用换行符。 如果你把它用作html,比如用Html.fromStringparsing它,那么第二个变种更好。

1)换行符\n

 <string name="sample> This\nis a sample</string> 

2)HTML换行标签<br><br />

 <string name="sample> This<br>is a sample</string> 

这对我有用,也许有人会发现这有帮助:

 TextView textField = (TextView) findViewById(R.id.textview1); textField.setText("First line of text" + System.getProperty("line.separator") + "Linija 2"); 

使用的Android Studio 0.8.9。 唯一的方法是使用\n 。 既不包括CDATA也不包括<br><br />工作。

如果您使用XML来声明您的TextView使用android:singleLine = "false"或在Java中,请使用txtSubTitle.setSingleLine(false);

我使用以下内容:

 YOUR_TEXTVIEW.setText("Got some text \n another line"); 

尝试仔细检查您的本地化。 可能,你试图编辑一个文件(本地化),但实际上编程使用另一个, 就像在我的情况 。 默认的系统语言是俄语,而我试图编辑英文本地化。

在我的情况下,工作解决scheme是使用“\ n”作为行分隔符:

  <string name="string_one">line one. \nline two; \nline three.</string> 

很简单:使用“\ n”

  String aString1 = "abcd"; String aString2 = "1234"; mSomeTextView.setText(aString1 + "\n" + aString2); 

\ n对应于ASCII字符0xA,即“LF”或换行符

\ r对应于ASCII字符0xD,即“CR”或回车符

这可以从第一台打字机开始,您可以select只进行换行(并只input一行)或换行+回车(也可以移动到行首)

在Android / java上,\ n对应于一个回车+换行符,否则就会'覆盖'同一行

你也可以添加"&lt;br&#47;&gt;" 而不是\ n。

这是HTML转义代码<br/> <br/>

然后你可以添加文本到TexView:

 articleTextView.setText(Html.fromHtml(textForTextView)); 

你也可以使用Android Studio的string编辑器,它会自动生成线路刹车和类似的东西…

我发现了另一种方法:是必要添加“ android:maxWidth =”40dp“ ”属性。 当然,它可能无法完美运行,但是会导致换行。

由于Html.fromHtml弃用我只是我用这个代码来获取下一行Html.fromHtml

 textView.setText(fromHtml("String1 <br/> String2")); 

 @SuppressWarnings("deprecation") public static Spanned fromHtml(String html){ Spanned result; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { result = Html.fromHtml(html,Html.FROM_HTML_MODE_LEGACY); } else { result = Html.fromHtml(html); } return result; } 

最简单的方法是去值/string(在你的资源文件夹中)

在那里声明一个string:

  <string name="example_string">Line 1\Line2\Line n</string> 

并在你的特定的XML文件中调用像这样的string

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