2011-11-19 2 views
1

첫 번째 부분이 "찾고있는": 굵게 표시되지만 나머지는 굵게 표시되지 않는 곳에 서식있는 텍스트를 구성하려고합니다. 이것은 내 코드입니다.SpannableString [/ Builder] 및 서식있는 텍스트 사용

SpannableStringBuilder lookingForString = new SpannableStringBuilder("Looking for: "); 
lookingForString.setSpan(new StyleSpan(Typeface.BOLD), 0, lookingForString.length(), 
             0); 
int start = (lookingForString.length() - 1); 
for (int i = 0; i < looking_for_names.length(); ++i) { 
// No comma before the first and after the last 'Looking for' value 
    if (i > 0) { 
     lookingForString.append(", "); 
     lookingForString.setSpan(new StyleSpan(Typeface.NORMAL), start, 
           (lookingForString.length() - 1), 0); 
     start += 2; 
    } 

    String lfItem = looking_for_names.optString(i); 
    lookingForString.append(lfItem); 
    lookingForString.setSpan(new StyleSpan(Typeface.NORMAL), start, 
          (lookingForString.length() - 1), 0); 
    start += lfItem.length(); 
} 
tvLookingFor.setText(lookingForString, BufferType.SPANNABLE); 

그러나 결과는 전체 줄이 굵게 표시됩니다. 많은 변형을 시도했지만 형식면을 제대로 제어 할 수 없습니다 ... 코드 작성 방법에 관계없이 첫 번째 글꼴을 유지하는 경향이 있습니다.

어떻게 "찾기 :"만 굵게 표시 되나 나머지 텍스트는 일반 (굵게 표시되지 않음)으로 표시 되나요?

답변

4

텍스트의 일부분을 굵게 표시해야하는 경우 html 태그 만 사용하면됩니다.

String htmlString="<b>Looking for: Bold</b> and Normal"; 
tvLookingFor.setText(Html.fromHtml(htmlString), TextView.BufferType.SPANNABLE); 
+0

프로그래밍 방식으로 작동합니까? 필자가 본 문서에서는 strings.xml의 문자열에서만 작동한다고 말합니다. –

+0

모든 html 문자열이 작동합니다. 모든 HTML 태그는 지원되지 않습니다. 비록 당신이 수동으로 지원되지 않는 태그를 처리 할 수 ​​있습니다. –

+0

감사합니다. –

관련 문제