जवाबों:
TextView
यूनिकोड नो-ब्रेक स्पेस कैरेक्टर ( \u00A0
) का सम्मान करता है , जो HTML की तुलना में सरल / हल्का समाधान होगा।
\u00A0
एक गैर-ब्रेकिंग स्पेस है, \u0020
एक गैर-ब्रेकिंग स्पेस नहीं है
पठनीय समाधान का उपयोग करना संभव है । पाठ में शामिल \u00A0
या /  
या वास्तव में स्रोत कोड (या उस मामले के लिए अनुवादक) के पाठक को बहुत जानकारी नहीं देता है, जब तक कि आपको हेक्स कोड याद न हों। यहां नामित इकाई का उपयोग करने का एक तरीका है : 
 
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE resources [
<!ENTITY nbsp " "><!-- non-breaking space, U+00A0 -->
]>
<resources>
...
</resources>
यह लापता घोषणा को बनाएगा। मूल HTML घोषणा को https://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent सामान्य XHTML DTDs से संदर्भित किया जा सकता है। । यह सब काम करता है, क्योंकि फ़ाइल को लोड करते समय XML पार्सर इन और विकल्प को पढ़ता है, इसलिए इकाई परिणामी संकलित संसाधनों में मौजूद नहीं होगी।
Android पाठ में ( CharSequence
) संसाधन<!-- Defined in <resources> -->
<string name="html_text">Don\'t break <b>this name</b></string>
<!-- Used in a layout -->
<TextView
android:layout_width="130dp"
android:layout_height="wrap_content"
android:background="#10000000"
android:text="@string/html_text"
/>
डिवाइस और पूर्वावलोकन (पूर्वावलोकन HTML को नहीं पहचानता है)
Android स्ट्रिंग (स्वरूपित) संसाधन में<!-- Defined in <resources> -->
<string name="formatted_text">%1$s is nice</string>
<!-- Used in a layout -->
<TextView
android:layout_width="130dp"
android:layout_height="wrap_content"
android:background="#10000000"
tools:text="@string/formatted_text"
/>
फिर कोड में:
String contents = getString(R.string.formatted_text, "Using an ");
((TextView)view.findViewById(android.R.id.text1)).setText(contents);
डिवाइस और पूर्वावलोकन (पूर्वावलोकन पहचान नहीं करता है और जावा तार शाब्दिक पाठ हैं!)
ये डीटीडी संस्थाओं का सिर्फ उदाहरण उपयोग हैं, इसे अपनी पसंद के आधार पर उपयोग करें।
<!ENTITY con "\'"><!-- contraction, otherwise error: "Apostrophe not preceded by \"
Sadly ' cannot be overridden due to XML spec:
https://www.w3.org/TR/xml/#sec-predefined-ent -->
<!ENTITY param1 "%1$s"><!-- format string argument #1 -->
<string name="original">Don\'t wrap %1$s</string>
<string name="with_entities">Don&con;t wrap ¶m1;</string>
’
चरित्र को ठीक से संभालता है, एपोस्ट्रोफिक संस्थाओं को बनाने की कोई आवश्यकता नहीं है। <string name="original">Don’t wrap %1$s</string>
उम्मीद के मुताबिक काम करता है।
'
वी.एस. ’
। एंड्रॉइड को अधिक फैंसी यूनिकोड वर्णों के साथ कोई समस्या नहीं है, लेकिन इसमें ASCII 0x27 के साथ एक समस्या है, जिसे भागने की आवश्यकता है। इकाई केवल एक सुविधा है, मैंने इसे वहां प्रदर्शित करने के लिए रखा जहां यह उपयोगी हो सकता है।
स्ट्रिंग्स में होना यूनिकोड की तुलना में अनुवादकों के लिए अधिक अर्थपूर्ण है\u00A0
con
और param1
उसी फ़ाइल में।
एक अनोखी स्थिति जो मैं भाग रहा था, वह एक गैर-ब्रेकिंग स्पेस को एक स्ट्रिंग संसाधन में जोड़ रहा था जो String.format
मापदंडों को ले गया था ।
<resources>
<string name="answer_progress" formatted="false">Answered %d of %d</string>
</resources>
मैंने स्ट्रिंग में नॉन-ब्रेकिंग स्पेस चरित्र को बस कॉपी और पेस्ट करने की कोशिश की और इसे संकलन के बाद एक नियमित पुराने स्थान से बदल दिया गया।
निकाला जा रहा है स्वरूपित = "false" , प्रारूप आर्ग नंबर और का उपयोग कर बैकस्लैश अंकन मेरे लिए काम किया:
<resources>
<string name="answer_progress">Answered %1$d\u00A0of\u00A0%2$d</string>
</resources>