मुझे पता है, लेकिन इसकी (जहां तक मुझे पता है?) एक संपादन टेक्स्ट नियंत्रण में पाठ को चिह्नित करने का एकमात्र तरीका है।
EditText Spannable
वस्तुओं का समर्थन करता है, तो आप पाठ (उदाहरण के लिए पृष्ठभूमि रंग) अपने आप पर प्रकाश डाला आवेदन कर सकते हैं।
This sample project एक खोज फ़ील्ड प्रदर्शित करता है जो खोज परिणामों के आधार पर टेक्स्ट के बड़े हिस्से में पृष्ठभूमि रंग लागू करता है। ,
private void searchFor(String text) {
TextView prose=(TextView)findViewById(R.id.prose);
Spannable raw=new SpannableString(prose.getText());
BackgroundColorSpan[] spans=raw.getSpans(0,
raw.length(),
BackgroundColorSpan.class);
for (BackgroundColorSpan span : spans) {
raw.removeSpan(span);
}
int index=TextUtils.indexOf(raw, text);
while (index >= 0) {
raw.setSpan(new BackgroundColorSpan(0xFF8B008B), index, index
+ text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
index=TextUtils.indexOf(raw, text, index + text.length());
}
prose.setText(raw);
}
नोट हालांकि, कि अपने "उत्पादन स्ट्रिंग" शायद एक TextView
, न कि एक EditText
होना चाहिए: महत्वपूर्ण हिस्सा searchFor()
तरीका है। EditText
इनपुट के लिए है, आउटपुट नहीं।
'सेट चयन()' टेक्स्ट को हाइलाइट नहीं करना है ", लेकिन कट/कॉपी/पेस्ट ऑपरेशंस के लिए चयन सेट करना है। इसलिए, यह केवल फोकस के साथ 'एडिटटेक्स्ट' पर समझ में आता है। एकाधिक 'संपादन टेक्स्ट' विजेट में टेक्स्ट को हाइलाइट करने का आपका उद्देश्य क्या है? – CommonsWare
मुझे पता है, लेकिन इसकी (जहां तक मुझे पता है?) एक संपादन टेक्स्ट नियंत्रण में पाठ को चिह्नित करने का एकमात्र तरीका है। मैं बस रीयलटाइम में कुछ इनपुट स्ट्रिंग्स को कन्वर्ट करना चाहता हूं, और यदि आप इनपुट स्ट्रिंग के एक सेक्शन पर क्लिक करते हैं, तो मैं आउटपुट स्ट्रिंग के उचित सेक्शन को हाइलाइट करना चाहता हूं। –