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

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

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

Ответ 1

Не доверяйте редактору Visual. Ваш код работает в emu.

Ответ 2

Попробуйте:

android:lines="2"

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

Ответ 3

попробуйте System.getProperty("line.separator");

Ответ 4

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

Ответ 5

Сначала поставьте это в своем тексте:

android:maxLines="10"

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

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

Ответ 6

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

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

  • Только тогда каждый экземпляр строки '\n' escape-символов выводится в фактическую строку

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

Приветствия: D

Ответ 7

<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" />

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

Ответ 8

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

Ответ 9

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

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

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

Ответ 10

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

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

Ответ 11

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

Ответ 12

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

Добавьте \n в строки XML, когда вы читаете:

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

Ответ 13

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

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

Ответ 14

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

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

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

Ответ 15

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

Ответ 16

Вам нужно поместить "\n" в файл strings.xml не strings.xml в макет страницы.

Ответ 17

Необходимо сохранить

1. android:maxLines="no of lines"

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

Ответ 18

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

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

Ответ 19

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

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

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

Ответ 20

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

Ответ 21

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

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

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

Ответ 22

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

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

Ответ 23

Боковое примечание: использование текста с использованием

android:inputType="textCapCharacters"

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

Ответ 24

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

Ответ 25

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

Ответ 26

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

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

Ответ 27

Просто попробуйте Textview_name.settext("что-то\n новая строка"):

В файле Java

Ответ 28

Попробуйте это,

String string = "1.abc \n 2. gff \n 3. hjk";

string = string.replace("\\\n",System.getProperty("line.separator"));

Ответ 29

Используйте Notepad ++ и выполните следующие действия:

  • Загрузите XML в Notepad ++.
  • Нажмите "Заменить".
  • И замените все \n на\n. (Найти → \n Заменить → \n)

И тебе хорошо идти.