Ответ 1
Не доверяйте редактору Visual. Ваш код работает в emu.
Когда я определяю 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" />
Не доверяйте редактору Visual. Ваш код работает в emu.
Попробуйте:
android:lines="2"
\n
должен работать.
попробуйте System.getProperty("line.separator");
Я думаю, что это как-то связано с вашим вызовом HTM.fromHtml(subTitle)
: "\n" не означает, что bupkis для HTML. Попробуйте <br/>
вместо "\n".
Сначала поставьте это в своем тексте:
android:maxLines="10"
Затем используйте текст \n
в тексте вашего текста.
maxLines делает TextView максимально таким большим количеством строк. Вы можете выбрать другой номер:)
Пробовал все вышеперечисленное, сделал некоторые исследования моего собственного, в результате получилось следующее решение для визуализации строк вывода строки:
string = string.replace("\\\n", System.getProperty("line.separator"));
Используя метод replace, вам необходимо отфильтровать строки escaped linefeeds (например, '\\\n'
)
Только тогда каждый экземпляр строки '\n'
escape-символов выводится в фактическую строку
В этом примере я использовал базу данных noSQL для сценариев Google Apps (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" />
Я думаю, что это сработает.
Убедитесь, что ваш \n
находится в "\n"
чтобы он работал.
Я просто решаю ту же проблему, помещаю ниже атрибуты в xml
android:lines="2" android:maxLines="4" android:singleLine="false"
работа. Html.fromHtml("text1 <br> text2").toString()
тоже работа.
Это решило мою проблему.
stringVar.replaceAll("\\\\n", "\\\n");
System.getProperty("line.separator");
эта работа для меня.
Мои 2 цента, используя Android TV.
Добавьте \n
в строки XML, когда вы читаете:
public void setSubtitle(String subtitle) {
this.subtitle = subtitle.replace("\\n", System.getProperty("line.separator"));
}
Одним из способов сделать это является использование тегов Html
:
txtTitlevalue.setText(Html.fromHtml("Line1"+"<br>"+"Line2" + " <br>"+"Line3"));
Также вы можете добавить <br>
вместо \n.
И тогда вы можете добавить текст в TexView:
articleTextView.setText(Html.fromHtml(textForTextView));
Если вы выполните отладку, вы увидите, что строка на самом деле "\ \r\ \n"
или "\ \n"
, то есть она экранирована. Так что если вы массировать эту строку, чтобы избавиться от дополнительных \
, вы будете иметь свое решение. Это верно, особенно если вы читаете из базы данных.
Вам нужно поместить "\n"
в файл strings.xml
не strings.xml
в макет страницы.
Необходимо сохранить
1. android:maxLines="no of lines"
2.Используйте \n
для получения следующих строк
Вам нужно поместить \n
в файл string.xml
<string name="strtextparkcar">press Park my Car to store location \n</string>
Для меня решением было добавить следующую строку в макет:
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
...
>
И \n отображается в виде новой строки в визуальном редакторе. Надеюсь, поможет!
Убедитесь, что вы используете your_package.R
а не android.R
Ответ на RuDrA05 хорош. Когда я редактирую XML на eclipse, он не работает, но когда я редактирую XML с помощью блокнота ++, он работает.
То же самое происходит, если я читаю 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
.
для новой строки в TextView просто добавьте \n в середине вашего текста он работает.
Если TextView находится в любом макете (например, LinearLayout), попробуйте изменить атрибут ориентации по вертикали как
android:orientation="vertical"
для макета или изменить атрибут TextView
android:singleLine="true"
, чтобы создать новую строку после него.
android:text="Previous Line Next Line"
Это будет работать
Просто попробуйте Textview_name.settext("что-то\n новая строка"):
В файле Java
Попробуйте это,
String string = "1.abc \n 2. gff \n 3. hjk";
string = string.replace("\\\n",System.getProperty("line.separator"));
Используйте Notepad ++ и выполните следующие действия:
И тебе хорошо идти.