मैं एंड्रॉइड लाइब्रेरी प्रोजेक्ट बनाने की कोशिश कर रहा हूं, और जब बिल्ड प्रक्रिया ठीक काम करती है, तो मैं प्रोजेक्ट में संसाधन को बदलने के साथ कुछ परेशानी में भाग रहा हूं जो लाइब्रेरी का उपयोग करता है।एंड्रॉइड लाइब्रेरी प्रोजेक्ट में स्ट्रिंग (या "ओवरराइड") स्ट्रिंग
मेरी लाइब्रेरी में मेरे पास है:
एक
library_layout.xml
युक्त< TextView
एंड्रॉयड: आईडी = "@ + id/str_my_string"
एंड्रॉयड: layout_width = "wrap_content"
एंड्रॉइड: layout_text = "wrap_content"
>एक जावा फ़ाइल जो कहता है
((TextView) this.findViewById (R.id.str_my_string)) setText (R.string.my_string)।
एक संसाधन
strings.xml
< स्ट्रिंग नाम = "my_string" > प्लेसहोल्डर < युक्त/स्ट्रिंग >
परियोजना में पुस्तकालय मैं
एक संसाधन का उपयोग करते हुए
strings.xml
युक्त< स्ट्रिंग नाम = "my_string" > वास्तविक स्ट्रिंग सामग्री </स्ट्रिंग >
व्यवहार मैं उम्मीद है कि जब मैं लाइब्रेरी का उपयोग कर परियोजना चलाने के लिए, पाठ दृश्य प्रदर्शित करता है वास्तविक स्ट्रिंग सामग्री, लेकिन इसमें वास्तव में झूठी शामिल है।
जो लाइब्रेरी का उपयोग करता अनुप्रयोग में देख रहे हैं, मुझे क्या करना दो R
फ़ाइलों को देखने के, और उन दोनों को R.string.my_string
है और उन दोनों के एक ही संख्यात्मक मान के बराबर हैं।
तो ऐसा लगता है कि मुझे बस ग्रहण के साथ पुरानी क्रॉफ्ट की सफाई नहीं करने में समस्याएं थीं। – jwriteclub
यह सही है, लेकिन यदि स्ट्रिंग का लाइब्रेरी में अनुवाद किया गया है तो यह असफल हो जाएगा। Lib में अनुवादित संस्करण उपयोग-ऐप संस्करण (अनुवादित या नहीं) को ओवरराइड करता है। इतना सबक सीखा: प्लेसहोल्डर स्ट्रिंग का अनुवाद न करें। –
@johand। उन पुस्तकालयों के लिए जो अनुवादित स्ट्रिंग संसाधन का उपयोग करते हैं, किसी भी तरह से हमारी परियोजना में इसे ओवरराइड करने के लिए? – Bruce