উত্তর:
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>
এটি নিখোঁজ ঘোষণা তৈরি করবে। মূল এইচটিএমএল ঘোষণাটি https://www.w3.org/TR/xhtml1/DTD/xhtML-lat1.ent এ পাওয়া যায় যা সাধারণ এক্সএইচটিএমএল ডিটিডি থেকে রেফারেন্স করা হয় । এই সমস্ত কাজ করে, কারণ এক্সএমএল পার্সার ফাইলটি লোড করার সময় এগুলি এবং বিকল্পগুলি পড়েন, ফলে ফলাফলটি সংকলিত সংস্থানগুলিতে সত্তা উপস্থিত হবে না।
অ্যান্ড্রয়েড পাঠ্যে ( 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>
’
চরিত্রটি ঠিকঠাকভাবে পরিচালনা করে , অ্যাডাস্ট্রোফ সত্তা তৈরি করার প্রয়োজন নেই। <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" , বিন্যাস args সংখ্যায়ন এবং ব্যবহার ব্যাকস্ল্যাশ স্বরলিপি আমার জন্য কাজ:
<resources>
<string name="answer_progress">Answered %1$d\u00A0of\u00A0%2$d</string>
</resources>
এটি আমার পক্ষে কাজ করেছে:
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);
}