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"));
Using the replace method you need to filter escaped linefeeds (e.g.
'\\\n'
)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 <br>
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 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."
精彩评论