Новий рядок String Resource / n не можливий?


167

Здається, не можна додати новий рядок /nдо рядка ресурсу XML. Чи є інший спосіб зробити це?


12
ти маєш на увазі \ n? у вас є приклад?
Кіт

1
Це повинно бути \ n Працює для мене
akash89

1
@anandtripathi, я відмовив вашу редакцію, тому що відповіді безглузді. ОП помилково використовував \ n замість / n, що є сутністю питання. Ми не повинні виправляти код ОП, а лише тіло питання для очевидних розонів
Вега,

Відповіді:


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, вона автоматично знімає символи нового рядка. Ви можете просто вручну додати їх назад, і це буде добре. Не впевнений, чому це робить.
Джордж Раутенбах

\ n не працює для мене, ані зміна рядка, ані рядок не має / n. Ти знаєш чому ? жоден хіт не вводить твори, про що йдеться в інших відповідях
Телура

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
О, це цікаво. Дякую, що поділились. Також я відчуваю себе ідіоткою, коли задаю це питання, але схоже, що це допомогло багатьом людям. ЛОЛ!!
Енді Джей

4
Дві послідовні розриви рядків (як мінімум, поточні версії) Android розглядаються як лише один пробіл. github.com/paour/StringResourceTest
П'єр-Люк Паур

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. Спасибі
Ахмад Реза Еншайе

Загортання багаторядкових рядків у лапки було чудово. Набагато краще, ніж розміщувати \nвсюди (що може швидко стати нечитабельним і заплутаним). Потрібно говорити, але про всяк випадок: якщо ви хочете мати буквальний цитат у своєму тексті, вам слід уникнути цього:\"
Нолонар

4

Якщо ви покладете "\ n" у рядок у файлі xml, він приймається як "\\ n"

Отже, я зробив:

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

І тоді я отримую стрибок рядка на екрані


3
Це відбувається лише тоді, коли ви додаєте рядок за допомогою майстра. Якщо ви редагуєте xml, він працює
Daniel Argüelles

Я теж помилився. Дякую за вашу пораду. Але я просто виправив усі зовнішність \ n себе.
Канат

Не вдале рішення. Ви повинні отримати текст з ресурсів і безпосередньо використовувати його. Що робити, якщо вам доведеться поводитися з більш спеціальними символами? Ви також напишете більше коду для них? Що робити, якщо у вас крайові корпуси?
dephinera

3

Під час використання редактора перекладів в Android Studio просто натисніть на значок праворуч (або скористайтеся Shift-Enter), а потім додайте розриви рядків, використовуючи return. Це буде правильно вставлено \ n в локалізовані рядки.xml.


Дякую за цю відповідь.
Просте

2
Немає піктограми праворуч, і Shift-Enter переходить до наступного тексту вище, принаймні, на ubuntu.
Тібор Надь

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 "код" при збереженні


0

Я щойно стикався з цим питанням. не працювали TextViewз параметрами обмеження. Додавання, android:lines="2"здається, це виправить.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.