2012-05-29 13 views
11
के माध्यम से की खोज की जाती है कि हाइलाइट

नमस्ते मुझे पता है कि कैसे सभी शब्द जो EditText में इनपुट किया जाता है उजागर करने के लिए और TextView इस पोस्ट इस एक Highlight Textview Using EditTextसभी शब्द EditText

उत्तर

21

कहो एट है से संबंधित है में दिखाई देगा चाहते हैं आपका संपादन टेक्स्ट और टीवी टेक्स्ट व्यू ऑब्जेक्ट है। निम्नलिखित कोड का उपयोग करें:


public class MotivationalQuotesActivity extends Activity { 
    /** Called when the activity is first created. */ 

Button next; 
EditText et; 
TextView tv; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    et = (EditText) findViewById(R.id.et); 
    tv = (TextView) findViewById(R.id.tv); 
    tv.setText("The name of our country is Bangladesh. Bangladesh is a land of rivers."); 

    next = (Button) findViewById(R.id.button1); 
    next.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       tv.setText("The name of our country is Bangladesh. Bangladesh is a land of rivers."); 
       String ett =et.getText().toString(); 
       String tvt =tv.getText().toString(); 

       int ofe = tvt.indexOf(ett,0); 
       Spannable WordtoSpan = new SpannableString(tv.getText()); 

     for(int ofs=0;ofs<tvt.length() && ofe!=-1;ofs=ofe+1) 
     {  


       ofe = tvt.indexOf(ett,ofs); 
        if(ofe == -1) 
         break; 
        else 
         {      

         WordtoSpan.setSpan(new BackgroundColorSpan(0xFFFFFF00), ofe, ofe+ett.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
         tv.setText(WordtoSpan, TextView.BufferType.SPANNABLE); 
         } 


     } 


      } 
     }); 

    } 

} 

परिणाम है:

enter image description here

+0

आपको बहुत बहुत धन्यवाद के साथ इच्छा रीप्लेस स्ट्रिंग, तुम सच में मेरे प्रोजेक्ट में .. मदद – Mordiggian

+0

मैं 1 अधिक सवाल है, कैसे मिटाने या शब्द में उजागर पुनर्स्थापित करने के लिए? – Mordiggian

+1

यदि आप हाइलाइट को मिटाना चाहते हैं तो आप 2 दृष्टिकोणों का उपयोग कर सकते हैं: ** पहला: ** टेक्स्ट टीवी पर कच्चे टेक्स्ट को 'tv.setText ("हमारे देश का नाम बांग्लादेश है। बांग्लादेश नदियों की भूमि है। ");' ** दूसरा: ** हाइलाइटिंग के उपर्युक्त विधि का उपयोग करें, लेकिन पृष्ठभूमि के रंग का उपयोग करें (इस मामले में ** काला ** कहें) जैसे हाइलाइटिंग का रंग: 'WordtoSpan.setSpan (नया पृष्ठभूमि रंगरपान (रंग .black), ofe, ofe + ett.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ' –

0

एक एक पाठ पर प्रकाश डाला के आसान और त्वरित तरीका, उपयोग करने के लिए स्ट्रिंग विधि की जगह है। font टैग

Spanned strHTML= Html.fromHtml("<center>"+full_string.replaceAll(strSrch,"<font color='yellow'>"+strSrch+"</font>")+"</center><br/>"); 
TextView tv=(TextView) v.findViewById(R.id.txtPager); 
tv.setText(strHTML,TextView.BufferType.SPANNABLE); 
संबंधित मुद्दे