2011-01-31 6 views
5

मैं कुछ लिंक (यूआरएल और फ़ोन नंबर) के लिए एक पाठ पार्स करने के लिए चाहता हूँ और मैं कोडएंड्रॉयड getSpans पैरामीटर

String message = "text text www.evz.ro test 1234567 test www.220.ro test Http://emm.ro"; 
SpannableString ss = new SpannableString(message); 
Linkify.addLinks(ss, Linkify.ALL); 
Object[] spans = ss.getSpans(0, ss.length() - 1, null) 

क्या पैरामीटर मैं अशक्त के बजाय का उपयोग करना चाहिए की कोशिश की है? किस वर्ग का प्रकार? मुझे बस यह पता होना चाहिए कि लिंक कहां से शुरू होता है और यह कहां समाप्त होता है

उत्तर

11

समाधान मिला। यहां यह है:

SpannableString spannableString = new SpannableString(str); 
Linkify.addLinks(spannableString, Linkify.ALL); 
URLSpan[] spans = spannableString.getSpans(0, spannableString.length() , URLSpan.class); 
+0

ध्यान दें कि आप string.length() का उपयोग कर रहे हैं, स्ट्रिंग। लम्बाई() - 1 नहीं। यह सिर्फ एक समस्या है जो मैं कर रहा था, लेकिन ऐसा लगता है कि यह प्रलेखन का खंडन करता है, जो कहता है कि दूसरा पैरामीटर एक अंत सूचकांक है, लंबाई नहीं। अजीब ... –

+0

ऐसा लगता है कि क्या सूचकांक अक्षरों के बीच की जगह को संदर्भित करता है। उदाहरण के लिए: स्ट्रिंग 'एबीसी' में 4 रिक्त स्थान हैं (| ए | बी | सी |)। उन रिक्त स्थानों को 0 से 3 तक गिने जाते हैं, इसलिए स्पैन करने योग्य स्ट्रिंग लम्बाई के साथ अंतिम एक मैच की अनुक्रमणिका (4 वें तत्व को प्रतिबिंबित करने वाला मान 3)। –