2012-02-22 11 views
14

मैं EditText.getText().clearSpans() पर कॉल करके अपने स्पैन को साफ़ करने के लिए एडिटटेक्स्ट प्राप्त करने का प्रयास कर रहा हूं। हालांकि, अगर मैं इस विधि को कॉल करता हूं, तो एडिटटेक्स्ट अजीब तरीके से व्यवहार करना शुरू कर देता है, लाइन फीड बॉक्स के रूप में दिखाई दे रही है और किसी भी स्पैन के बाद मैं पूरी तरह से गलत जगह पर सेट कर रहा हूं।एंड्रॉइड एडिटक्स्ट- क्लियरिंग स्पैन

तो मेरा सवाल है: मैं स्पैन और एडिटटेक्स्ट से स्पैन कैसे साफ़ करूं? (SetText() को कॉल किए बिना - पाठ हजारों लाइनों तक लंबा हो सकता है और इसे अक्सर बार-बार फिर से धीमा करना बहुत मुश्किल होता है)

बहुत बहुत धन्यवाद!

उत्तर

34

एक ही समस्या थी। इसे केवल उस प्रकार के स्पैन को हटाकर हल किया जिसे मैंने एडिटटेक्स्ट में जोड़ा था। मुझे लगता है कि स्पष्ट स्पेन्स इसे से अधिक हटा देता है। मैंने प्रत्येक प्रकार के अवधि के लिए ऐसा कुछ किया:

toRemoveSpans = et.getSpans(0, et.getText().length(), ForegroundColorSpan.class); 
for (int i = 0; i < toRemoveSpans.length; i++) 
    et.removeSpan(toRemoveSpans[i]); 
+1

धन्यवाद आंद्रे। असल में मैंने इसे हल करने में कामयाब रहा था (खेद है कि मैं इसे खुद जवाब देने के लिए भूल गया!), लेकिन जवाब पोस्ट करने के लिए धन्यवाद- मुझे यकीन है कि किसी और से इससे फायदा होगा। –

+1

वास्तव में, किसी ने किया था। धन्यवाद! – Carni

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