में टेक्स्ट व्यू में
जोड़ना संभव है? क्या किसी ने समान कार्यक्षमता हासिल की है?एंड्रॉइड और टेक्स्ट व्यू
मैं टेक्स्ट व्यू में गैर-ब्रेक करने योग्य स्थान रखना चाहता हूं।
में टेक्स्ट व्यू में
जोड़ना संभव है? क्या किसी ने समान कार्यक्षमता हासिल की है?एंड्रॉइड और टेक्स्ट व्यू
मैं टेक्स्ट व्यू में गैर-ब्रेक करने योग्य स्थान रखना चाहता हूं।
मैं इस की कोशिश की है नहीं सुनिश्चित करने के लिए कि यह वास्तव में काम करता है, लेकिन एक आदर्श दुनिया में TextView
Unicode no-break space character (\u00A0
) का सम्मान करना चाहिए, जो HTML की तुलना में एक सरल/लाइटर समाधान होगा।
यह एक उदाहरण है कि एक TextView
<string name="text">Example:\u00A0</string>
के बजाय "हैलो wor ..." उत्पन्न होता है यह \ u00A0 – poitroae
\u00A0
में nbsp का उपयोग कर एक नॉन-ब्रेकिंग स्पेस है, \u0020
एक नॉन-ब्रेकिंग स्पेस
TextView गैर तोड़ने का सम्मान करना चाहिए नहीं है अंतरिक्ष
<string name="test">Hello world</string>
या
new TextView("Hello\u00A0world");
एक अनूठी स्थिति जिसमें मैंने भाग लिया था, एक स्ट्रिंग संसाधन में एक गैर-ब्रेकिंग स्पेस जोड़ रहा था जिसमें 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>
यह
उपयोग करने के लिए एक पठनीय समाधान होना संभव नहीं है। पाठ में \u00A0
या  
या  
/ 
सहित वास्तव में स्रोत कोड (या उस मामले के लिए अनुवादक) के पाठक को अधिक जानकारी नहीं दी जाती है, जब तक आपको हेक्स कोड याद न हों। यहाँ strings.xml
में वर्णित निकाय को उपयोग करने के लिए एक तरीका है:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE resources [
<!ENTITY nbsp " "><!-- non-breaking space, U+00A0 -->
]>
<resources>
...
</resources>
यह लापता घोषणा पैदा करेगा। मूल एचटीएमएल घोषणा https://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent में सामान्य XHTML DTDs से संदर्भित की जा सकती है। यह सब काम करता है, क्योंकि एक्सएमएल पार्सर फाइल लोड करते समय इन और विकल्प को पढ़ता है, इसलिए इकाई परिणामस्वरूप संकलित संसाधनों में मौजूद नहीं होगी।
(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"
/>
डिवाइस और पूर्वावलोकन (पूर्वावलोकन एचटीएमएल को नहीं पहचानता है)
(प्रारूपित) संसाधन<!-- 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>
होना चाहिए एंड्रॉइड '' 'चरित्र को ठीक से संभालता है, बनाने की कोई ज़रूरत नहीं है apostrophe इकाइयों। '
@Diti यह एक [APOSTROPEE] नहीं है (http://www.fileformat.info/info/unicode/char/0027/index.htm), यह एक [दायां सिंगल कोटेशन मार्क] है (http: //www.fileformat। जानकारी/जानकारी/यूनिकोड/चार/2019/index.htm); ''' VS '' की तुलना करें। एंड्रॉइड में अधिक फैंसी यूनिकोड वर्णों के साथ कोई समस्या नहीं है, लेकिन इसमें ASCII 0x27 के साथ कोई समस्या है, जिसे भागने की आवश्यकता है। इकाई सिर्फ एक सुविधा है, मैंने इसे यह दिखाने के लिए वहां रखा है कि यह कहां उपयोगी हो सकता है। – TWiStErRob
यह उत्कृष्ट है =) धन्यवाद। मुझे यह बहुत साफ और पढ़ने में आसान लगता है। –
यह मेरे लिए काम किया:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
textview.setText(Html.fromHtml(your string, Html.FROM_HTML_MODE_LEGACY));
} else {
textview.setText(Html.fromHtml(your string);
}
कि महान काम करता है। आप इसे एक्सएमएल या जावा कोड में जोड़ सकते हैं। जावा कोड में ठीक काम करें, एक्सएमएल में मैंने बहुत ज्यादा परीक्षण नहीं किया है, लेकिन इसे नौकरी करना चाहिए। – Mikooos
न तो \ u0020 और न ही \ u00A0 काम। न तो उन्हें एक्सएमएल में सेट करके (एक्सएमएल में पूर्वावलोकन में भी नहीं) और न ही उन्हें जावा में setText() के साथ सेट करके। एंड्रॉइड 4.1 और 4.2 –
\ u00A0 दोनों ने एंड्रॉइड 4.4 के साथ एंड्रॉइड 4.4 के साथ स्ट्रिंग्स.एक्सएमएल – OneWorld