2012-04-23 4 views
7

내 텍스트 응용 프로그램에서 나는 특정 단어를 포함하는 문자열을 가지고 있으므로 텍스트보기에서 특정 단어를 강조 표시해야합니다. 다음 이미지는 당신에게 아이디어를 줄 것입니다.문자열에서 단어를 검색하고 android의 텍스트보기에서 단어를 강조 표시하는 방법은 무엇입니까? 내 안드로이드 응용 프로그램에서

enter image description here

나는이 작업을 수행하기 위해 다음 코드를 사용하지만 작동하지 않았습니다.

CODE :

죄수 내 문자열이고 groupNameContent 텍스트 필드입니다. 난 당신이 단어의 목록을 이해할 수 있다면

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); 

답변

7

, 당신은 사용할 수 있습니다 세 입력 매개 변수 :

  1. 전체 텍스트입니다.
  2. yourList
  3. yourTextview 내가 내 문자열 (사기)를 넣어해야

    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

확인 결과 텍스트를 표시하려면? –

+0

쉽습니다. 강조하려는 각 단어에 대해 setSpan 메서드에 시작 인덱스와 끝 인덱스를 넣습니다. 문자열 배열을 사용하여 루프의 각 단어를 강조 표시하거나 텍스트에 단어 배열을 만들고 각 단어를 강조 표시해야하는지 결정할 수 있습니다. –

+0

옙 강조 표시입니다. 만약 당신이 나를 시작 색인과 단어의 끝 색인을 찾을 수있는 방법을 줄 수 있습니다. (루프 내에서 논리를 의미). –

3

당신은 텍스트에서이 단어를 찾아 당신은이 답변에 너무을 강조 할 :

각 단어에 대한
con.replaceAll(arrGroupelements[groupPosition][5],"<font color='#CA278C'>"+arrGroupelements[groupPosition][5]+"</font>."); 
groupNameContent.setText(Html.fromHtml(con)); 
관련 문제