2010-01-22 18 views
19

में टेक्स्ट हाइलाइट करें TextView या WebView में टेक्स्ट हाइलाइट करना संभव है?टेक्स्ट व्यू या वेबव्यू

मैं इसे एक EditText

Highligh text in a EditText

मैं TextView या WebView में भी ऐसा ही करना चाहते हैं में संभव है देखते हैं।
संभव है?

+0

इसे भी देखें, http://stackoverflow.com/questions/6309093/how-to-allow-the-user-to-select-a-text-range- इन-ए-टेक्स्टव्यू-समान-टू-एडिटेक्स्ट – hassanadnan

+0

संभावित डुप्लिकेट [क्या टेक्स्टव्यू के अंदर कई शैलियों के लिए संभव है?] (http://stackoverflow.com/questions/1529068/is-it-possible-to-have -बहुत-शैली-शैली-अंदर-एक-पाठदृश्य) – blahdiblah

+0

वेबदृश्य में ऐसा करने का तरीका क्या है? – AnupamChugh

उत्तर

56

टेक्स्टव्यू के स्पैन करने योग्य संग्रहण को सक्षम करें! डिफ़ॉल्ट रूप से संपादन टेक्स्ट में स्पैन करने योग्य संग्रहण सत्य है।

तो

TextView myTV = (TextView)findViewById(R.id.textView1); 
String textString = "StackOverFlow Rocks!!!"; 
Spannable spanText = Spannable.Factory.getInstance().newSpannable(textString); 
spanText.setSpan(new BackgroundColorSpan(0xFFFFFF00), 14, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
myTV.setText(spanText); 
+3

धन्यवाद, यह ठीक काम करता है। लेकिन मुझे लगता है कि स्पैन करने योग्य टेक्स्ट बनाएं: स्पैन करने योग्य spanText = Spannable.Factory.getInstance()। NewSpannable (textString); textView.setText() और textView.getText() से बेहतर है। – VAdaihiep

+0

क्या एक उचित टेक्स्ट-व्यू बनाने का कोई तरीका है और फिर इसे कई स्पैन सेट करें? –

+0

+ एल 'स्टैक ओवर फ्लो रॉक्स के लिए !!!' –

0

असल में, आप खुद ही इस सुविधा को विकसित करने की जरूरत नहीं है। जब आप एंड्रॉइड सेट करते हैं, तो आपको EditText को टेक्स्टव्यू के बजाय संपादन टेक्स्ट का उपयोग करने की आवश्यकता होती है: संपादन टेक्स्ट को संपादित करने के लिए संपादित करें।

मेरा जवाब यहाँ है, आशा है कि यह आपकी मदद कर सकता है:

https://stackoverflow.com/a/11026292/966405

1

साथ ही आप WebView लिए यह एक समाधान इस्तेमाल कर सकते हैं। कॉल findAllAsync

webview.findAllAsync(((EditText) findViewById(R.id.edit)).getText().toString()); 
से

webview.findNext(false); साथ परिणाम में WebView

webview.setFindListener(new FindListener() { 

     @Override 
     public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches, boolean isDoneCounting) { 
      Toast.makeText(getApplicationContext(), "Matches: " + numberOfMatches, Toast.LENGTH_LONG).show(); 
     } 
    }); 

दोहराने में FindListener जोड़ने जहां झूठी/सच दिशा दिखाता है।

लेकिन यह समाधान API level 16 में जोड़ा गया था !!! इसके बजाय आप higlihting के लिए जावास्क्रिप्ट सेट कर सकते हैं - http://www.nsftools.com/misc/SearchAndHighlight.htm

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