स्ट्रिंग संसाधन नई लाइन / n संभव नहीं है?


167

ऐसा लगता नहीं है कि /nXML संसाधन स्ट्रिंग में एक नई पंक्ति जोड़ना संभव है । क्या ऐसा करने का एक और तरीका है?


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

मैं एंड्रॉइड स्टूडियो के कारण मेरे जैसे लोगों तक इस पृष्ठ पर पहुंचने के लिए कुछ का उल्लेख करना चाहता हूं। एएस में जब आप आईडीई के उपकरण का उपयोग करके एक स्ट्रिंग निकालते हैं, तो यह स्वचालित रूप से न्यूलाइन वर्णों को स्ट्रिप्स करता है। आप बस मैन्युअल रूप से उन्हें वापस जोड़ सकते हैं और यह ठीक काम करेगा। निश्चित नहीं कि यह ऐसा क्यों करता है।
जॉर्ज रॉटेनबैच

मेरे लिए \ n doest काम, न तो लाइन बदलें न ही string / n है। तुम जानते हो क्यों ? अन्य कामों में न तो हिट दर्ज करें, न ही अन्य जवाबों में कहा
Thelouras

52

मुझे पता है कि यह बहुत पुराना सवाल है लेकिन जब मैंने खोजा तो इस सूची में सबसे ऊपर था। इसलिए मैं दूसरी विधि से अपडेट करना चाहता था।

स्ट्रिंग्स.xml फ़ाइल में आप \ n कर सकते हैं या आप केवल एंटर दबा सकते हैं:

<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
दो लगातार लाइनब्रेक का इलाज एंड्रॉइड के कम से कम वर्तमान संस्करणों द्वारा किया जाता है, केवल एक ही स्थान के रूप में। 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। धन्यवाद
अहमद रजा Enshaee

उद्धरण चिह्नों में मल्टीलाइन स्ट्रिंग लपेटकर पूरी तरह से काम किया। \nहर जगह डालने से बहुत बेहतर (जो जल्दी से अपठनीय और भ्रमित हो सकता है)। कहने की जरूरत नहीं है, लेकिन सिर्फ मामले में: यदि आप अपने पाठ में एक शाब्दिक उद्धरण चिह्न चाहते हैं, तो आपको इससे बचना चाहिए:\"
Nolonar

4

यदि आप xml फ़ाइल में एक स्ट्रिंग में "\ n" डालते हैं, तो इसे "\\ n" के रूप में लिया जाता है

तो मैंने किया :

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

और फिर मुझे स्क्रीन पर एक लाइन जंप मिलती है


3
केवल तब होता है जब आप विज़ार्ड के साथ स्ट्रिंग जोड़ते हैं। यदि आप xml को संपादित करते हैं तो यह काम करता है
डैनियल आर्ग्यूलेस जुएल

मैंने भी यह गलती की। आपके सुझाव के लिए धन्यवाद। लेकिन मैंने सिर्फ \ n खुद के सभी दिखावे को ठीक किया।
कनाट

एक अच्छा समाधान नहीं। आपको संसाधनों से पाठ प्राप्त करना चाहिए और इसे सीधे उपयोग करना चाहिए। यदि आपको अधिक विशेष पात्रों को संभालना है तो क्या होगा? आप उनके लिए और भी कोड लिखने वाले हैं? यदि आपके पास किनारे के मामले हैं तो क्या होगा?
डेफिनेरा

3

एंड्रॉइड स्टूडियो में अनुवाद संपादक का उपयोग करते समय बस आइकन को दाईं ओर क्लिक करें (या Shift-Enter का उपयोग करें) और फिर रिटर्न का उपयोग करके लाइन ब्रेक जोड़ें। यह स्थानीयकृत स्ट्रिंग्स.xml में \ n सही तरीके से सम्मिलित होगा।


इस उत्तर के लिए बहुत बहुत धन्यवाद।
सरल

2
ऊपर के अगले पाठ में दाईं ओर Shift-Enter जंप करने के लिए कोई आइकन नहीं है, कम से कम ubuntu पर।
टिबर नागी

3

एंड्रॉइड स्टूडियो के नवीनतम संस्करण में, "\ 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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.