Android에서 TextView에 줄 바꿈을 어떻게 추가합니까?


253

TextViewin을 정의 할 때 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
귀하의 코드가 저에게 효과적입니다. 여러 줄 문자 대신 무엇을 얻습니까?
molnarm 2016 년

2
비주얼 편집기에서는 텍스트로 표시됩니다. \ n
Pentium10

답변:


293

비주얼 편집기를 신뢰하지 마십시오. 귀하의 코드는 에뮤에서 작동합니다.


글쎄, 내 경우에는 Visual 편집기가 진실을 말하고있었습니다. 백 슬래시를 표시하기 위해 다른 백 슬래시를 추가했습니다. 올바른 방법은 텍스트를 xml 파일에 넣는 것입니다.
dp2050

79

시험:

android:lines="2"

\n 작동해야합니다.


1
내 textview가 2 줄보다 길 수 있습니다. 컨트롤입니다. 그것은 무엇이든 될 수 있습니다.
dropsOfJupiter


38

나는 이것이 당신의 HTM.fromHtml(subTitle)전화 와 관련이 있다고 생각합니다 : "\ n"은 HTML에 대한 bupkis를 의미하지 않습니다. <br/>"\ n"대신에 시도하십시오 .


25
@androidevAlex 그 때문에하지 </br> 그것의 <BR/>,
일리아 년 Kogan

21

먼저 이것을 텍스트보기에 넣으십시오.

android:maxLines="10"

그런 다음 \n텍스트 뷰의 텍스트에 사용하십시오.

maxLines는 TextView가 최대이 행 수를 초과하게합니다. 다른 번호를 선택할 수 있습니다 :)


19

위의 모든 것을 시도했지만 내 피드를 조사하여 줄 바꿈 이스케이프 문자를 렌더링하는 다음과 같은 솔루션을 만들었습니다.

string = string.replace("\\\n", System.getProperty("line.separator"));
  1. 당신이 필터에 필요한 방법을 대체 사용 탈출 줄 바꿈 (예를 '\\\n')

  2. 그런 다음 줄 바꿈 '\n'이스케이프 문자 의 각 인스턴스가 실제 줄 바꿈으로 렌더링됩니다.

이 예제에서는 JSON 형식의 데이터와 함께 Google Apps Scripting noSQL 데이터베이스 (ScriptDb)를 사용했습니다.

건배 : D


1
이것은 나를 위해 일했다 : replace ( "\\ n", System.getProperty ( "line.separator"));
slott

오히려 string = string.replaceAll ( "\\\ n", System.getProperty ( "line.separator"));
user846316

10
<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

Android TV를 사용하는 2 센트

\n읽는 동안 XML 문자열에 추가하십시오 .

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

8

난 그냥 같은 문제를 해결하고 XML의 속성 아래에 넣습니다.

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

작업. Html.fromHtml("text1 <br> text2").toString()또한 작동합니다.


이것은 여전히 ​​관련이 있습니다. 감사합니다! maxLines가 있었지만 singleLine = false가 없었습니다.
blast_hardcheese

이것은 나에게서 일한 유일한 솔루션입니다. 감사!
Silas


7

이것은 내 문제를 해결했습니다.

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

6

System.getProperty("line.separator"); 이것은 나를 위해 작동합니다.


5

이를 수행하는 한 가지 방법은 Html태그를 사용하는 것입니다.

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

5

디버깅하면 문자열이 실제로 "\ \r\ \n"또는 "\ \n"즉 이스케이프 된 것을 볼 수 있습니다. 따라서 그 줄을 마사지하면 여분을 제거하기 위해 \솔루션을 갖게됩니다. 데이터베이스에서 읽는 경우 특히 그렇습니다.


5

당신은을 둘 필요가 "\n"strings.xml없는 페이지 레이아웃에서 파일.


이것은 Visual Editor가 백 슬래시를 \ n
dp2050

4

유지해야

1.android:maxLines="no of lines"

2. 그리고 \n다음 줄을 얻는 데 사용 하십시오.


4

나에게 해결책은 레이아웃에 다음 줄을 추가하는 것이 었습니다.

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

그리고 \ n은 비주얼 편집기에서 줄 바꾸기로 나타납니다. 그것이 도움이되기를 바랍니다!


1
그것이 질문과 관련이 있는지 확실하지 않습니다 :)
Suleyman

줄 바꿈 대신 문자열 "\ n"이 표시되는 것과 같은 문제가있었습니다. 내가 위에 줄을 추가했을 때이 사건은 더 이상 끝나지 않고 새로운 줄이 나타났습니다
Rob

1
사용했기 때문에 어쩌면 그건 tools:text하지 android:text: 영업 좋아하지만, 방해에 대한 어쨌든 죄송합니다
Suleyman

나는, 내가 더 잘 명확히해야 내가 지금 :) 내가 사용 않았다 귀하의 의견 덕분에 생각 android:text나는 acceptet 대답에서 알 수 있지만 :)를 볼 수 더 편안처럼, 그냥 비주얼 에디터의 버그 생각을
Rob

네, 이해합니다. 여러분은 더 편안합니다. :) 고마워요
Suleyman

4

또한 &lt;br&gt;대신에 추가 할 수 있습니다 \n.

그런 다음 TexView에 텍스트를 추가 할 수 있습니다.

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

XML에는 없습니다. 컴파일 오류가 발생 android:text합니다. <또는> 문자를 포함 할 수 없습니다.
Timmmm

3

\n파일 을 넣어야 합니다string.xml

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

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

작동합니다.


아닙니다.
shazbot

<TextView android : layout_width = "match_parent"android : layout_height = "wrap_content"android : singleLine = "false"android : text = "Prev Line & # 10; New LIne"/> 작동하려면 에뮬레이터에서 실행해야합니다. 감사합니다
Viral Parmar

2

단지 시도:

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

Java 파일에서.


3
질문에 대한 올바른 답변을 제공하십시오. 그렇지 않으면 의견을 사용하십시오
DjSh

1

RuDrA05의 대답은 좋습니다. 일식에서 XML을 편집하면 작동하지 않지만 메모장 ++로 XML을 편집하면 작동합니다.

이클립스 또는 메모장 ++로 저장된 txt 파일을 읽는 경우에도 마찬가지입니다.

인코딩과 관련이있을 수 있습니다.


1

이것은 잘 작동합니다. 앱을 확인하십시오.

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

1

참고 사항 :

android:inputType="textCapCharacters"

또는 유사한 것이 \n작동 을 멈추는 것으로 보입니다 .


1

사용 your_package.R 하고 있는지 확인하십시오android.R



0

TextView의 새 줄에 텍스트 중간에 \ n 을 추가 하면 작동합니다 ..


그러나 대답은 "YOUR"질문이 아닌 질문 링크 와 관련이 있습니다 .
Nikhil Borad

omg .. 죄송합니다. 답을 수정하십시오.
Ranjith Kumar

1
먼저 답변을 수정하십시오. 그렇지 않으면 투표를 변경할 수 없습니다.
Ranjith Kumar

0

TextView가 임의의 레이아웃에있는 경우 (예 : 선형 android:orientation="vertical"레이아웃) 레이아웃 과 같이 방향 속성을 세로로 변경하거나 TextView속성 android:singleLine="true"을 변경하여 새 줄을 만듭니다.


0

프로그래밍 방식 : myTV.setText ( "My Text"+ "\ n"+ myString);


0

stings.xml에 문자열을 작성하십시오.

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

그런 다음 코드에서 문자열을 참조하십시오.

val linkString = "This is in the first line.${getString(R.string.new_line)}This is on the second line."
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.