2012-04-23 22 views
7

benim metin görünümünde tüm dize görüntülemek istediğiniz belirli bir kelime içeren bir dize var ve belirli bir kelime vurgulu olmalıdır.Hope aşağıdaki görüntü size bir fikir verecektir.Android'de bir metin görünümünde bir dizede sözcük aramak ve kelimeyi vurgulamak nasıl? Benim android uygulamasında

enter image description here

Bunu için aşağıdaki kodu kullanılır ama onun çalışma değil.

KODU:

con benim dizedir ve groupNameContent metin alanıdır. Ben kelimelerin listesi var anlayabilirse

TextView textView = (TextView)findViewById(R.id.mytextview01); 
//use a loop to change text color 
Spannable WordtoSpan = new SpannableString("partial colored text");   
WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 2, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
textView.setText(WordtoSpan); 

cevap

7

kullanabileceğiniz üç giriş parametresi:

  1. tam metin.
  2. yourList
  3. yourTextview benim dize (con) koymalıyız

    String text = "full of your text"; 
    Spannable textSpannable = new SpannableString(text); 
    
    for (int j =0 ; j<yourList.size() ; j++) { 
        //word of your list 
        String word = String.valueOf(yourList.get(j)); 
        //find index of words 
        for (int i = -1; (i = text.indexOf(word, i + 1)) != -1; i++) { 
         //find the length of word for set color 
         int last = i + word.length(); 
         //set text color with spannable 
         textSpannable.setSpan(new BackgroundColorSpan(Color.parseColor("#0cab8f")), 
           i, last, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
        } 
    } 
    yourTextView.setText(textSpannable); 
    
+0

Tamam sonuç metni göstermek için? –

+0

, vurgulamak istediğiniz her kelime için setSpan yönteminde başlangıç ​​dizini ve bitiş dizinini koyarsınız. Bir dizi diziniz olabilir ve her kelimeyi bir döngüde vurgulayabilir veya metninizi bir dizi kelime haline getirebilir ve her kelimenin vurgulanması gerekip gerekmediğine karar verebilirsiniz. –

+0

evet vurgulamaktır.if lütfen bana bir kelime başlangıç ​​endeksi ve end endeksi bulmak için bir yol verebilir (döngü içinde mantık demek). –

3

ve metinde bu kelime bulmak ve sahip bu yanıtında yüzden onları vurgulamak istiyorum:

her kelime için
con.replaceAll(arrGroupelements[groupPosition][5],"<font color='#CA278C'>"+arrGroupelements[groupPosition][5]+"</font>."); 
groupNameContent.setText(Html.fromHtml(con)); 
İlgili konular