5

के लिए HTML स्वरूपण मैं टेक्स्ट नियमों के प्रारूप में टेक्स्ट प्रदर्शित करता हूं या नहीं, जब 'नियम' के बारे में थोड़ा उलझन में हूं।टेक्स्ट व्यू

(एचटीएमएल कोड सहित) किसी भी प्रारूपण के बिना

"There are <i>different ways</i> of coding.\n"; 

प्रदर्शित करता है की तरह एक स्ट्रिंग जब मैं

tvMyTextView.setText("There are <i>different ways</i> of coding.\n"); 

कोड लेकिन जब मैं strings.xml में एक ही स्ट्रिंग को परिभाषित करने और उसके बाद

लोड
tvMyTextView.setText(R.strings.TestString); 

यह जोर देता है।

इससे भी अधिक उलझन में मुझे लगता है कि जब TextView यहाँ की तरह में यूआरएल एम्बेड करने के लिए कोशिश कर रहा है:

"Click <a href="http://www.poon-world.com">here</a> to switch on the red light.\n"; 

जरूरत नहीं कहने के लिए मैं पहले से ही TextView के विभिन्न संपत्ति विकल्पों की कोशिश की - लेकिन वे एक के बहुत बनाने के लिए नहीं लग रहे अंतर जब तक कि मुझे कुछ याद नहीं आया। कुछ मामलों में यूआरएल को नीले रंग में पाठ में एन्कोड किया जाता है और क्लिक किया जा सकता है, अन्य में मैं HTML स्वरूपण देख सकता हूं। दूसरों में फिर से, यह रंग-एन्कोडेड होता है और यूआरएल किसी भी तरह टेक्स्ट में एन्कोड किया जाता है - लेकिन जब मैं इसे क्लिक करता हूं तो कुछ भी नहीं होता है। यूआरएल के एम्बेडिंग के बारे में, 'सरल' एचटीएमएल प्रारूपण के साथ दूसरे उदाहरण के विपरीत, मैं तब तक एक नियम नहीं ढूंढ पाया जब यह काम करता है और जब ऐसा नहीं होता है। किसी को भी मुझे मेरे सिर में समुद्री मील खोल करने के लिए मदद कर सकते हैं ..

+0

इसे आज़माएं MAC

उत्तर

5

वास्तव में, .. एंड्रॉयड डॉक्स से

public final void setText (CharSequence text) 

TextView का स्ट्रिंग मान सेट करता है। टेक्स्ट व्यू HTML- जैसे स्वरूपण स्वीकार नहीं करता है, जो आप XML संसाधन फ़ाइलों में टेक्स्ट स्ट्रिंग के साथ कर सकते हैं। अपने तारों को स्टाइल करने के लिए, android.text.style। * ऑब्जेक्ट्स को स्पैन करने योग्य स्ट्रिंग पर संलग्न करें, या XML संसाधन फ़ाइल में स्वरूपित टेक्स्ट सेट करने के उदाहरण के लिए उपलब्ध संसाधन प्रकार दस्तावेज़ देखें।

लेकिन,

public final void setText (int resid) 
  • कोई उस पर और अधिक विनिर्देश ..

लेकिन Android संसाधन स्ट्रिंग डॉक्स से ..

आप HTML मार्कअप के साथ अपने तार को स्टाइल जोड़ सकते हैं । उदाहरण के लिए:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="welcome">Welcome to <b>Android</b>!</string> 
</resources> 

समर्थित HTML तत्वों में शामिल हैं:

<b> for bold text. 
<i> for italic text. 
<u> for underline text. 

कभी कभी तुम एक स्टाइल पाठ संसाधन है कि यह भी एक प्रारूप स्ट्रिंग के रूप में प्रयोग किया जाता है बना सकते हैं।आम तौर पर, यह काम नहीं करेगा क्योंकि String.format(String, Object...) विधि स्ट्रिंग से सभी शैली की जानकारी को पट्टी कर देगी। इस के आसपास काम से बचने वाली इकाइयों के साथ एचटीएमएल टैग लिखना है, जिसे स्वरूपण के बाद fromHtml(String) के साथ पुनर्प्राप्त किया जाता है।

और अपने URL स्ट्रिंग के बारे में, ...

tvMyTextView.setText(Html.fromHtml("Click <a href="http://www.poon-world.com">here</a> to switch on the red light.\n")); 

इसके अलावा इस पर देखने अतः Set TextView text from html-formatted string resource in XML

और

Android String Resource

0

प्रश्न मेरे अपने प्रश्नों के कुछ नोट जोड़ने के लिए और अब तक जवाब प्राप्त करने के बाद, मैं केवल यह निष्कर्ष निकाल सकता हूं कि हर जगह काम करने वाला एक विश्वसनीय तरीका प्रतीत नहीं होता है।

कुछ मामलों में - मेरे अनुभव के अनुसार, अगर एक URL का प्रारूप सादा पाठ का हिस्सा है और टैग से घिरा नहीं है (http://www.poon-world.com की तरह, यहां तक ​​कि बस "Poon-World.com" ज्यादातर मामलों में काम करने के लिए लगता है), बस टेक्स्ट व्यू के गुणों को सेट करना पर्याप्त लगता है और लिंक क्लिक करने योग्य होंगे। हालांकि, अगर लिंक एचटीएमएल टैग में एम्बेडेड हैं और कुछ लिंक टेक्स्ट से क्लिक करने योग्य माना जाता है, तो Html.fromHtml (..) के साथ जाने के अलावा कोई दूसरा तरीका नहीं लगता है।

लेकिन कुछ विशेष मामले भी हैं जो मैं समझा नहीं सकता: कुछ गतिविधियों/लेआउट में, मैं "एम्बेडेड" यूआरएल का उपयोग कर रहा हूं और पहले उल्लेखित क्लिक-गुण सेट कर चुका हूं, Html.fromHtml का उपयोग न करें .. और पाठ में वास्तव में बनाई गई लिंक पर एक क्लिक के !, आश्चर्य वास्तव में ब्राउज़र को खोलता है, लेकिन केवल OnCreate-इवेंट में कोड में निम्न पंक्ति जोड़ा होने के बाद:

myTextView.setMovementMethod(LinkMovementMethod.getInstance()); 

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

संबंधित मुद्दे