Java android: appending a newline using TextView

2019-01-24 04:01发布

问题:

I just want to add a new line somehow to my linear layout:

layout = (LinearLayout) findViewById (R.id.layout);  

... //some other code where I've appended some strings already

final TextView nline = new TextView(this);
nline.setText(Html.fromHtml("<br>")); //i also tried:  nline.setText("\n");
layout.addView(nline);

But this just adds a few spaces. Can someone help me out? Thanks.

回答1:

If you just want to have some empty space between two other views, you could do this in your XML (assuming you're using XML for the layout). Something like this could work, basically putting in a View with a transparent background and given height. This is assuming you have whatever parameters you want in your TextViews.

<TextView />

<View android:background="#00000000"
      android:layout_height="12dp" //or whatever density pixel height you want
      android:layout_width="fill_parent" />

<TextView />

Also, in what you tried above... you could try a space and newline... that might work.

nline.setText(" \n");


回答2:

First you need to make your TextView to be multiline. And then use simple "\n" string for linebreak.

final TextView nline = new TextView(this);
nline.setSingleLine(false);
nline.setText("first line\n"+"second line\n"+"third line");


回答3:

You may need to set the InputType to TYPE_TEXT_FLAG_MULTI_LINE using the setInputType() method of TextView

tv.setInputType(tv.getInputType()|InputType.TYPE_TEXT_FLAG_MULTI_LINE);

You also could just set some margin/padding on the other views. I think that TextViews should not be misused as spacers.



回答4:

Simple as:

String hello = getResources.getString(R.string.hello);
String world = getResources.getString(R.string.world);
textView.setText(hello + "\n" + world);


回答5:

Simple by giving "\n" data is displayed in a new line

txtView.setText("Latitude :" + latitude + "\nLongitude :" + longitude);