Как добавить новую строку в TextView в Android?

когда я определяю TextView на xml, Как добавить к нему новую строку? n кажется, не работает.

<TextView
   android:id="@+id/txtTitlevalue"
   android:text="Line1: n-Line2n-Line3"
   android:layout_width="54dip"
   android:layout_height="fill_parent"
   android:textSize="11px" />

26 ответов


Не доверяйте визуальному редактору. Ваш код работает в ЭВС.


попробуй:

android:lines="2"

\n должны работать.


попробовать System.getProperty("line.separator");


Я думаю, что это имеет какое-то отношение к вашему HTM.fromHtml(subTitle) вызов: "\n " не означает bupkis для HTML. Попробуй!--1--> вместо "\n".


во-первых, поместите это в свой textview:

android:maxLines="10"

затем использовать \n в тексте вашего textview.

maxLines делает TextView не более этого количества строк высотой. Вы можете выбрать другой номер :)


пробовал все вышеизложенное, сделал некоторые собственные исследования, в результате чего следующее решение для рендеринга линии подачи escape chars:

string = string.replace("\\n", System.getProperty("line.separator"));
  1. используя метод replace вам нужно фильтровать бежал linefeeds (например '\\n')

  2. только тогда каждый экземпляр line feed '\n' escape chars получает визуализацию в фактический linefeed

для этого примера я использовал Google Apps Scripting noSQL база данных (ScriptDb) с формированными данными JSON.

Ура: D


<TextView
   android:id="@+id/txtTitlevalue"
   android:text="Line1: \r\n-Line2\r\n-Line3"
   android:layout_width="54dip"
   android:layout_height="fill_parent"
   android:textSize="11px" />

Я думаю, это сработает.


это решило мою проблему.

stringVar.replaceAll("\\n", "\\n");

Я просто решаю ту же проблему, помещаю ниже атрибуты в xml

android:lines="2" android:maxLines="4" android:singleLine="false"

работа.Html.fromHtml("text1 <br> text2").toString() также работать.


убедитесь, что ваш \n находится в "\n" для его работы.


мои 2 цента, используя Android TV.

добавить \n в строках XML при чтении:

public void setSubtitle(String subtitle) {
    this.subtitle = subtitle.replace("\n", System.getProperty("line.separator"));
}

System.getProperty("line.separator"); эта работа для меня.


один из способов сделать это с помощью Html теги::

txtTitlevalue.setText(Html.fromHtml("Line1"+"<br>"+"Line2" + " <br>"+"Line3"));

нужно держать

1.android:maxLines="no of lines"

2.И использовать \n для получения следующих строк


Если вы отладки, вы увидите, что строка на самом деле "\ \r\ \n" или "\ \n", т. е., он сбежал. Поэтому, если вы массируете эту строку, чтобы избавиться от лишнего \, у вас будет ваше решение. Это особенно актуально если Вы читаете из базы данных.


также вы можете добавить &lt;br&gt; вместо \n.

и затем вы можете добавить текст в TexView:

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

нужно поставить \n в файле string.xml

<string name="strtextparkcar">press Park my Car to store location \n</string>

для меня решением было добавить в макет следующую строку:

<LinearLayout
    xmlns:tools="http://schemas.android.com/tools"
    ...
    >

и \n отображается как новая строка в визуальном редакторе. Надеюсь, это поможет!


вам нужно поставить "\n" на


ответ RuDrA05 хорош, когда я редактирую XML на eclipse, он не работает, но когда я редактирую XML с помощью notepad++, он работает.

то же самое происходит, если я читаю txt-файл, сохраненный с помощью eclipse или notepad++

возможно, связано с кодировкой.


Это прекрасно работает. Проверьте это для вашего приложения.

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 1\nText 2\nText 3"/>

Примечание: заглавная надпись с помощью

android:inputType="textCapCharacters"

или подобное, кажется, останавливает \n работать.


убедитесь, что вы используете your_package.R и не android.R


для новой строки в TextView просто добавьте \n в середине текста это работает..


Если TextView находится в любом макете (например, LinearLayout), попробуйте изменить атрибут orientation на vertical как android:orientation="vertical" для макета или изменить TextView атрибут android:singleLine="true" создать новую строку после нее.


 android:text="Previous Line &#10; Next Line" 

Это будет работать.