문자열 리소스 줄 바꾸기 / n이 불가능합니까?


167

/nXML 리소스 문자열에 새 줄 을 추가 할 수없는 것 같습니다 . 다른 방법이 있습니까?


12
당신은 \ n을 의미합니까? 예가 있습니까?
Keith

1
\ n이어야합니다. 나를 위해 작동
akash89

1
@ anandtripathi, 나는 대답이 의미가 없기 때문에 편집 내용을 롤백했습니다. OP는 / n 대신 \ n을 잘못 사용했습니다. 이것이 질문의 본질입니다. 우리는 명백한
Vega

답변:


382

슬래시가 아닌 블랙 슬래시를 사용하십시오. \n

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Hello\nWorld!</string>
</resources>

또한 문자열을 HTML로 사용하려는 경우 &lt;br /&gt;줄 바꿈 ( <br />)에 사용할 수 있습니다

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Hello&lt;br /&gt;World!</string>
</resources>

3
strings.xml에서는 HTML 형식 만 허용하므로 & lt; br / & gt; 제공되는 적절한 솔루션입니다
akash89

Android Studio로 인해이 페이지에 도달하는 사람들과 관련하여 언급하고 싶은 것이 있습니다. AS에서 IDE 도구를 사용하여 문자열을 추출하면 자동으로 줄 바꿈 문자가 제거됩니다. 수동으로 다시 추가하면 정상적으로 작동합니다. 왜 그렇게하는지 모르겠습니다.
George Rautenbach

\ n 나를 위해 작동하지 않습니다. 문자열이나 / n 줄을 변경하지 마십시오. 왜 그런지 아십니까? 다른 답변에서 말한 Enter Enter 작품도 없습니다
Thelouras

52

나는 이것이 꽤 오래된 질문이라는 것을 알고 있지만 검색 할 때 목록을 차지했습니다. 그래서 다른 방법으로 업데이트하고 싶었습니다.

strings.xml 파일에서 \ n을 수행하거나 간단히 enter 키를 누를 수 있습니다.

<string name="Your string name" > This is your string.

   This is the second line of your string.\n\n Third line of your string.</string>

TextView에 다음과 같은 결과가 나타납니다.

이것은 당신의 문자열입니다.

이것은 문자열의 두 번째 줄입니다.

문자열의 세 번째 줄.

문자열의 시작 선언과 줄 바꾸기 사이에 두 개의 리턴이 있었기 때문입니다. 또한 명확성을 위해 \ n을 추가하여 둘 중 하나를 사용할 수 있습니다. XML에 캐리지 리턴을 사용하여 목록이나 내가 가지고있는 여러 줄 문자열을 볼 수 있습니다. 내 두 센트


3
아, 흥미 롭습니다. 공유해 주셔서 감사합니다. 또한이 질문을하는 바보 같은 느낌이 들지만 많은 사람들에게 도움이 된 것처럼 보입니다. 롤 !!
Andi Jay

4
두 개의 연속적인 줄 바꿈은 (최소 현재 버전) Android에서 단일 공간으로 취급됩니다. github.com/paour/StringResourceTest
Pierre-Luc Paour

19

이것은 오래된 질문이지만 다음과 같이 문자열을 만들 때

<string name="newline_test">My
New line test</string>

앱의 출력은 다음과 같습니다 (줄 바꿈 없음)

My New line test

문자열을 따옴표로 묶을 때

<string name="newline_test">"My
New line test"</string>

줄 바꿈이 나타납니다.

My 
New line test

1
저에게 효과적이지만 위와 같은 리소스를 정의 할 때 기억하지 마십시오 Html.fromHtml. 감사합니다
Ahmad Reza Enshaee

여러 줄 문자열을 따옴표로 묶는 것이 완벽하게 작동했습니다. \n어디에나 두는 것보다 훨씬 낫습니다 (빠르게 읽을 수없고 혼동 될 수 있습니다). 말할 필요도없이, 만일의 경우에 대비해 : 텍스트에 문자 인용 부호를 사용하려면이를 피해야합니다.\"
Nolonar

4

xml 파일의 문자열에 "\ n"을 넣으면 "\\ n"으로 간주됩니다.

그래서 나는했다 :

text = text.Replace("\\\n", "\n");   ( text is taken from resX file) 

그런 다음 화면에 선이 나타납니다.


3
마법사를 사용하여 문자열을 추가 할 때만 발생합니다. xml을 편집하면 작동합니다.
Daniel Argüelles

나도이 실수를했다. 조언 해 주셔서 감사합니다. 그러나 \ n의 모든 모양을 수정했습니다.
Kanat

좋은 해결책이 아닙니다. 리소스에서 텍스트를 가져 와서 직접 사용해야합니다. 더 특별한 캐릭터를 다루어야한다면 어떻게해야합니까? 더 많은 코드를 작성 하시겠습니까? 엣지 케이스가 있다면?
dephinera

3

Android Studio에서 번역 편집기를 사용하는 경우 오른쪽의 아이콘을 클릭하거나 Shift-Enter를 사용하여 return을 사용하여 줄 바꿈을 추가하십시오. 지역화 된 strings.xml에 \ n이 올바르게 삽입됩니다.


이 답변에 감사드립니다.
간단한

2
오른쪽에는 아이콘이 없으며 Shift-Enter는 적어도 우분투에서 위의 다음 텍스트로 이동합니다.
Tibor Nagy

3

최신 버전의 Android 스튜디오에서 "\ n"은 전체 문자열이 아포스트로피가 아닌 한 원래 위치에있는 것처럼 인쇄됩니다.

예를 들어 :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">"Hello\nWorld!"</string>
</resources>

두 개의 브레이크 라인을 만들려면 어떻게해야합니까?
jvargas

1

매우 간단하게 문자열 리소스에서 줄 바꿈하려는 위치 에
\ n을 넣어야 합니다.

예를 들어

String s = my string resource have \n line break here;


두 개의 브레이크 라인을 만들려면 어떻게해야합니까?
jvargas

1

\ n 뒤에 공백을 넣지 마십시오. 그렇지 않으면 작동하지 않습니다. 이유를 모르겠지만이 트릭은 꽤 잘 작동했습니다.


0

답변 을 확장하고 싶습니다 . 그들이 의미하는 것은이 아이콘입니다.

에디터 창 버튼

큰 개요에서 제한된 기능의 텍스트 상자 대신 "실제 편집기 창"이 열립니다. 해당 편집기 창에서 특수 문자, 줄 바꿈 등이 허용되고 저장할 때 올바른 xml "code"로 변환됩니다.


0

방금이 문제에 직면했습니다. TextView제약 조건 매개 변수로 는 작동하지 않았습니다 . 추가 android:lines="2"하면 문제가 해결되는 것 같습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.