开发者

How do I add a newline to a TextView in Android?

开发者 https://www.devze.com 2023-02-18 16:51 出处:网络
When I 开发者_如何学JAVAdefine a TextView in xml, how do I add a new line to it? \\n seems not to work.

When I 开发者_如何学JAVAdefine a TextView in xml, how do I add a new line to it? \n seems not to work.

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


Don't trust the Visual editor. Your code does work in the emu.


Try:

android:lines="2"

\n should work.


try System.getProperty("line.separator");


I think this has something to do with your HTM.fromHtml(subTitle) call: a "\n" doesn't mean bupkis to HTML. Try <br/> instead of "\n".


First, put this in your textview:

android:maxLines="10"

Then use \n in the text of your textview.

maxLines makes the TextView be at most this many lines tall. You may choose another number :)


Tried all the above, did some research of my own resulting in the following solution for rendering line feed escape chars:

string = string.replace("\\\n", System.getProperty("line.separator"));
  1. Using the replace method you need to filter escaped linefeeds (e.g. '\\\n')

  2. Only then each instance of line feed '\n' escape chars gets rendered into the actual linefeed

For this example I used a Google Apps Scripting noSQL database (ScriptDb) with JSON formated data.

Cheers :D


Make sure your \n is in "\n" for it to work.


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

I think this will work.


I just solve the same problem, put below attributes in xml

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

work.Html.fromHtml("text1 <br> text2").toString() also work.


This solved my problem.

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


My 2 cents, using Android TV.

Add \n in XML strings, while reading:

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


One way of doing this is using Html tags::

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


Also you can add &lt;br&gt; instead of \n.

And then you can add text to TexView:

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


System.getProperty("line.separator"); this work for me.


If you debug, you will see that the string is actually "\ \r\ \n" or "\ \n", ie, it is escaped. So if you massage that string, to get rid of the extra \, you will have your solution. This is true especially if you are reading from a database.


You need to put the "\n" in the strings.xml file not within the page layout.


Need to keep

1.android:maxLines="no of lines"

2.And use \n for getting of the next Lines


For me the solution was to add the following line to the layout:

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

And \n shows up as a new line in the visual editor. Hope it helps!


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

This will work.


You need to put \n in the file string.xml

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


Try this:

android:text="Lorem Ipsum \nDolor Ait Amet \nLorem Ipsum"


This works fine. Check it for your app.

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


Just try:

Textview_name.settext("something \n  new line "):

In Java file.


RuDrA05's answer is good, When I edit the XML on eclipse it does not work, but when I edit the XML with notepad++ it DOES work.

The same thing is happening if I read a txt file saved with eclipse or notepad++

Maybe is related to the encoding.


Side note: Capitalising text using

android:inputType="textCapCharacters"

or similar seems to stop the \n from working.


Make sure you are using your_package.R and not android.R


for the new line in TextView just add \n in middle of your text it works..


If the TextView is in any Layout (LinearLayout for example), try to change the orientation attribute to vertical as android:orientation="vertical" for the layout or change the TextView attribute android:singleLine="true" to create a new line after it.


Programatically: myTV.setText("My Text" + "\n" + myString);


Create a string in your stings.xml

<resources>
    ...
    <string name="new_line">\u000A</string>
</resources>

Then in you code reference the string

val linkString = "This is in the first line.${getString(R.string.new_line)}This is on the second line."
0

精彩评论

暂无评论...
验证码 换一张
取 消