2010-12-20 10 views
28

मैं सोच रहा था कि क्या मैं /res/values/strings.xml के भीतर एक्सएमएल रख सकता हूं? मैं यह पूछता हूं क्योंकि मैं अपने आवेदन के लिए एक्सएमएल डेटा फ़ाइल की जांच कर रहा हूं, अगर यह अभी तक अस्तित्व में नहीं है तो यह इसे डिफ़ॉल्ट सामग्री से बनाता है जो स्ट्रिंग संसाधन के रूप में निहित होगा।एक्सएमएल?

ग्रहण स्ट्रिंग को संपादित करने के लिए जीयूआई का उपयोग करते समय टैग से संबंधित एचटीएमएल इकाइयों में टैग से कम और उससे अधिक परिवर्तन करने की कोशिश करता है। ग्रहण सही रास्ते पर है? क्योंकि मुझे यह सोचना चाहिए कि इसे HTML फाइलों के रूप में भी मेरी फाइल में लिखा जाएगा। क्या मैं getString() के बजाय getText() का उपयोग कर सकता हूं ताकि इकाइयों को टैग में वापस परिवर्तित किया जा सके?

किसी भी सलाह के लिए धन्यवाद जो आप दे सकते हैं।

उत्तर

58

हाँ तुम, बस का उपयोग कर सकते CDATA

<string name="stringName1"><![CDATA[<html>bla</html>]]></string>

+2

हाँ, बिल्कुल वही है जो मुझे चाहिए, मुझे पता है कि एक्सएमएल के लिए एक स्ट्रिंग संसाधन का उपयोग करके यह थोड़ा अपरंपरागत लगता है, लेकिन मैं अभी शुरू कर रहा हूं और मैं केवल 20 या तो अक्षर लिख रहा हूं। – Olical

2

यह तब तक काम नहीं करेगा जब तक कि आप < या> या & जैसे वर्णों से बचें।

यदि आप एक्सएमएल एन्कोड करते हैं, तो इसे ठीक काम करना चाहिए, लेकिन शायद इसे करने का सबसे अच्छा तरीका नहीं है। मैं बाइनरी संसाधन पसंद करूंगा।


string.xml में डालने के लिए, आप

String encoded = URLEncoder.encode(xml); 

का उपयोग कर सांकेतिक शब्दों में बदलना कर सकते हैं और डिकोडिंग विपरीत है।

बाइनरी के लिए, आप इसे रॉ फ़ोल्डर में रखते हैं और आपको एक बाइनरी स्ट्रीम मिलती है और इसे स्ट्रिंग और लोड पर बदल देती है।

+0

हो गया तो, जब लेखन '' < उदाहरण के लिए, परिवर्तित किया जाना चाहिए करने के लिए '<'? और बाइनरी संसाधन द्वारा, क्या वह कच्चे फ़ोल्डर में कुछ होगा जो आप अपनी डेटा फ़ाइल बनाने के लिए कॉपी करते हैं? – Olical

+0

कृपया मेरा अपडेट देखें। – Aliostad

1

मैं इस तरह से किया है:

strings.xml में अपने स्ट्रिंग रखो

<string name="my_string"><![CDATA[Your long text here]]></string> 

कैसे उपयोग करने के लिए:

<TextView 
    android:id="@+id/textView" 
    android:text="@string/my_string" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" />