दिलचस्प पोस्ट
Matlab में एक वीडियो बनाने के लिए दृष्टिकोण मैं ट्वीटर-बूटस्ट्रैप मोडल विंडो में एक डीजेंगो फ़ॉर्म कैसे सम्मिलित करूं? कई विदेशी_कीज़ के साथ रेल मॉडल है MySQL में कमांड लाइन का उपयोग कर SQL फ़ाइल कैसे आयात करें? एक हैश की चाबी कैसे पाएं? डू-ऑल लूप में टाइमर पर जेबटन को अपडेट करना क्या मेरे आवेदन में "एन्क्रिप्शन शामिल है"? मापदंडों की सरणी के साथ परम बाँधें सूत्रों का एक अलग ढेर है? सिद्धांत 2: संदर्भ तालिका में अतिरिक्त कॉलम के साथ कई-से-कई संभाल करने का सर्वोत्तम तरीका जावास्क्रिप्ट में स्ट्रिंग के लिए बाइट सरणी परिवर्तित करना स्विफ्ट में सबस्क्रिप्ट और सुपरस्क्रिप्ट का उपयोग कैसे करें पैरामीटर के साथ ASP.NET MVC 3 क्लाइंट साइड सत्यापन मोहरबंद वर्गों वास्तव में प्रदर्शन लाभ प्रदान करते हैं? एसक्यूएल परिणाम (या तो माइस्किल या पर्ल अंत पर) में रिक्त तिथियों के पैड का सबसे सीधा तरीका क्या है?

TextView / EditText में नल पर एक शब्द चुनें

एंड्रॉइड में TextView / EditText में नल पर किसी शब्द का चयन कैसे करें मेरे पास TextView / EditText टेक्स्ट में कुछ पाठ है और जब उपयोगकर्ता किसी शब्द पर टैप करता है, तो मैं उस शब्द को चुना जाना चाहता हूं और उसके बाद जब मैं विधि से प्राप्त करेंइसेक्टेड टेक्स्ट () प्राप्त करता हूं, तो मुझे मुझे चयनित शब्द वापस करना चाहिए। किसी भी सहायता की सराहना की जाएगी।

मेरा लक्ष्य कुछ क्रिया करने के लिए है जब उपयोगकर्ता TextView / EditText में किसी विशिष्ट शब्द पर नल EditText

वेब के समाधान से एकत्रित समाधान "TextView / EditText में नल पर एक शब्द चुनें"

BreakIterator का उपयोग करने के लिए एक और बेहतर तरीका है:

 private void init() { String definition = "Clickable words in text view ".trim(); TextView definitionView = (TextView) findViewById(R.id.text); definitionView.setMovementMethod(LinkMovementMethod.getInstance()); definitionView.setText(definition, BufferType.SPANNABLE); Spannable spans = (Spannable) definitionView.getText(); BreakIterator iterator = BreakIterator.getWordInstance(Locale.US); iterator.setText(definition); int start = iterator.first(); for (int end = iterator.next(); end != BreakIterator.DONE; start = end, end = iterator .next()) { String possibleWord = definition.substring(start, end); if (Character.isLetterOrDigit(possibleWord.charAt(0))) { ClickableSpan clickSpan = getClickableSpan(possibleWord); spans.setSpan(clickSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } } } private ClickableSpan getClickableSpan(final String word) { return new ClickableSpan() { final String mWord; { mWord = word; } @Override public void onClick(View widget) { Log.d("tapped on:", mWord); Toast.makeText(widget.getContext(), mWord, Toast.LENGTH_SHORT) .show(); } public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); } }; } 

पुराने उत्तर

मैं अपनी खुद की गतिविधि में क्लिक को संभालना चाहता था मैंने इसे निम्नलिखित कोड द्वारा हल किया:

 private void init(){ String definition = "Clickable words in text view ".trim(); TextView definitionView = (TextView) findViewById(R.id.definition); definitionView.setMovementMethod(LinkMovementMethod.getInstance()); definitionView.setText(definition, BufferType.SPANNABLE); Spannable spans = (Spannable) definitionView.getText(); Integer[] indices = getIndices( definitionView.getText().toString(), ' '); int start = 0; int end = 0; // to cater last/only word loop will run equal to the length of indices.length for (int i = 0; i <= indices.length; i++) { ClickableSpan clickSpan = getClickableSpan(); // to cater last/only word end = (i < indices.length ? indices[i] : spans.length()); spans.setSpan(clickSpan, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); start = end + 1; } } private ClickableSpan getClickableSpan(){ return new ClickableSpan() { @Override public void onClick(View widget) { TextView tv = (TextView) widget; String s = tv .getText() .subSequence(tv.getSelectionStart(), tv.getSelectionEnd()).toString(); Log.d("tapped on:", s); } public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); } }; } public static Integer[] getIndices(String s, char c) { int pos = s.indexOf(c, 0); List<Integer> indices = new ArrayList<Integer>(); while (pos != -1) { indices.add(pos); pos = s.indexOf(c, pos + 1); } return (Integer[]) indices.toArray(new Integer[0]); } 

Linkify का उपयोग करें, किसी शब्द के क्लिक पर अपना रूटीन लागू करने के लिए अपने स्वयं के नियमित अभिव्यक्ति का उपयोग करें

विकीवर्ल्ड उदाहरण और प्रासंगिक ब्लॉगपोस्ट के लिए यहां देखें