Dize Kaynak yeni satır / n mümkün değil mi?


167

/nBir XML kaynak dizesine yeni bir satır eklemek mümkün görünmüyor . Bunu yapmanın başka bir yolu var mı?


12
demek istiyorsun \ n? senin bir örneğin var mı
Keith

1
\ N olması gerekiyordu. Benim için çalışıyor
akash89

1
@anandtripathi, cevaplarınızı anlamsız kıldığından düzenlemenizi geri aldım. OP, sorunun özü olan / n yerine \ n yanlış kullanmıştı. Açık kodlar için OP kodunu değil, sadece soru gövdesini düzeltmeliyiz
Vega

Yanıtlar:


382

eğik çizgi değil, siyah eğik çizgi kullanın. \n

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

Ayrıca, dizeyi HTML olarak kullanmayı planlıyorsanız &lt;br /&gt;satır sonu ( <br />) için kullanabilirsiniz

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

3
Strings.xml dosyasında yalnızca kabul ettiği HTML biçimindedir, bu nedenle & lt; br / & gt; uygun çözümdür
akash89

Android Studio nedeniyle bu sayfaya ulaşan benim gibi insanlar için bir şeyden bahsetmek istiyorum. AS'de IDE'nin aracını kullanarak bir dize ayıkladığınızda, otomatik olarak yeni satır karakterlerini çıkarır. Bunları manuel olarak tekrar ekleyebilirsiniz ve sorunsuz çalışır. Bunu neden yaptığından emin değilim.
George Rautenbach

\ n benim için işe yaramaz, ne dize ne de / n satır değiştirmeyin. Neden biliyor musun ? ne hit enter works, diğer cevap dedi
Thelouras

52

Bunun oldukça eski bir soru olduğunu biliyorum ama aradığımda listenin tepesinde. Bu yüzden başka bir yöntemle güncellemek istedim.

Strings.xml dosyasında \ n yapabilir veya enter tuşuna basabilirsiniz:

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

Bu, TextView üzerinde aşağıdakilerle sonuçlanır:

Bu senin ipin.

Bu, dizenizin ikinci satırıdır.

Dizenizin üçüncü satırı.

Bunun nedeni, dizenin başlangıç ​​bildirimi ile yeni satır arasında iki dönüş olmasıydı. Ben de kullanılabilir olarak, netlik için \ n ekledim. Bir liste veya ne olursa olsun çok satırlı dize görebilmek için xml taşıma satırları kullanmayı seviyorum. Benim görüşüm.


3
Vay ilginçmiş. paylaşım için teşekkürler. Ayrıca, bu soruyu sorduğum için kendimi aptal gibi hissediyorum, ama birçok insana yardımcı olduğu anlaşılıyor. LOL !!
Andi Jay

4
İki ardışık satır sonu Android tarafından (en azından güncel sürümleri) yalnızca tek bir alan olarak ele alınır. github.com/paour/StringResourceTest
Pierre-Luc Paour

19

Bu eski bir soru, ama böyle bir dize oluşturduğunuzda buldum:

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

Uygulamanızdaki çıktı şu şekilde olacaktır (yeni satır yok)

My New line test

Dizeyi tırnak içine aldığınızda

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

yeni satır görünecektir:

My 
New line test

1
Benim için çalışıyor, ancak her halükarda, yukarıdaki gibi kaynakları tanımladığınızda, kullanmaktan kaçınmalısınız Html.fromHtml. Teşekkürler
Ahmad Reza Enshaee

Çok satırlı dizgiyi tırnak işaretleri içine almak mükemmel çalıştı. \nHer yere koymaktan çok daha iyi (hızla okunamaz ve kafa karıştırıcı olabilir). Söylemeye gerek yok, ama her ihtimale karşı: metninizde gerçek bir alıntı işaretine sahip olmak istiyorsanız, \"
kaçmalısınız

4

Xml dosyasındaki bir dizeye "\ n" koyarsanız, "\\ n" olarak alınır

Ben de yaptım :

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

Ve sonra ekranda bir satır atlama görüyorum


3
Yalnızca dizeyi sihirbazla eklediğinizde olur. Eğer xml düzenlerseniz çalışır
Daniel Argüelles

Ben de bu hatayı yaptım. Tavsiyen için teşekkürler. Ama sadece \ n 'nin tüm görünümlerini düzelttim.
Kanat

İyi bir çözüm değil. Metni kaynaklardan almalı ve doğrudan kullanmalısınız. Daha fazla özel karakterle başa çıkmak zorunda kalırsanız ne olur? Onlar için de daha fazla kod mu yazacaksın? Kenar vakalarınız varsa ne olur?
dephinera

3

Android Studio'da çeviri düzenleyicisini kullanırken sadece sağdaki simgeyi tıklayın (veya Shift-Enter kullanın) ve sonra dönüşü kullanarak satır sonları ekleyin. Bu, yerelleştirilmiş strings.xml dosyasına \ n doğru şekilde ekleyecektir.


Bu cevap için çok teşekkürler.
Basit

2
Sağda hiçbir simge yoktur ve Shift-Enter, en azından ubuntu'da, yukarıdaki metne atlar.
Tibor Nagy

3

Android stüdyosunun en son sürümünde, "\ n", tüm dize kesme işaretinde olmadıkça orada olması gerektiği gibi yazdırılacak

Örneğin:

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

İki kesme çizgisini nasıl yapabilirim?
jvargas

1

Çok basit sadece koymak zorunda
\ n dizgi kaynağınızda satır kesmek istediğiniz yere zorunda.

Örneğin

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


İki kesme çizgisini nasıl yapabilirim?
jvargas

1

\ n'den sonra boşluk koymayın, aksi takdirde çalışmaz. Sebebini bilmiyorum, ama bu hile benim için çok iyi çalıştı.


0

Bu cevabı genişletmek istiyorum . Demek istedikleri bu ikon:

Editör penceresi düğmesi

Büyük genel bakıştaki sınırlı özellikli metin kutusu yerine "gerçek bir editör penceresi" açar. Bu editör penceresinde, özel karakterlere, çizgi aralıklarına vb. İzin verilir ve kaydedildiğinde doğru xml "koduna" dönüştürülür.


0

Bu sorunla yeni karşılaştım. TextViewkısıt parametreleri ile çalışmadı . Eklemek android:lines="2"bunu düzeltiyor gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.