2017-12-08 54 views
1

문자열 변수 안에 저장된 텍스트를 굵은 체로 만들고 싶습니다.문자열 변수에 저장된 텍스트를 어떻게 굵게 만들 수 있습니까?

String buttonText = t.getText(). toString(); String val = map.get (buttonText); .content에서

  new MaterialDialog.Builder(LearningMode.this) 
        .iconRes(BalloonColor.get(2)) 
        .limitIconToDefaultSize() 
        .title("Meaning") 

        .content(buttonText+"\n"+val) 

        .positiveText("Continue") 
        .cancelable(false) 
        .onPositive(new MaterialDialog.SingleButtonCallback() { 
         @Override 
         public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { 
          mover.resume(); 
         } 
        }) 

        .show(); 

(- 버튼 + "\ n"+ val) 인 내가이 내부에 저장된 문자열이 굵은되고 싶다. 그것은이 Html.fromHtml ("< B>"+ - 버튼 + "</B>")처럼

작동되지 html.fromhtml 제가 시도

그것으로 변환 될 때, 상기의 추가 공간 굵게

및 다른 방법은 <으로 strings.xml에 선언하는 것처럼 여기에서 프로그래밍 방식으로 처리합니다.

궁극적으로 문자열 단추 텍스트가 출력물에 표시되면 굵게 표시됩니다.

은 내가 이미이 Set TextView text from html-formatted string resource in XML

업데이트를 언급했다 :
사용에는 텍스트 뷰가 없습니다.

누군가 도와주세요!

답변

2

MaterialDialog.Builder 클래스의 content(CharSequence) 메서드는 텍스트를 굵은 체로 만들기 위해 잘 작동해야합니다. 사용자가을 전달하면됩니다. 굵게 표시된 텍스트를 지원하는Html.fromHtml()이 작동하지 않는다는 것을 알지만 내 테스트에서는 완벽하게 작동합니다. 여기 개념의 증거 정말 간단한 작업입니다 :

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    protected void onResumeFragments() { 
     super.onResumeFragments(); 

     String myString = "test"; 

     new MaterialDialog.Builder(this) 
       .title("Hello world") 
       .content(Html.fromHtml("this is a <b>" + myString + "</b>")) 
       .positiveText("OK") 
       .show(); 
    } 
} 

enter image description here

+0

(Html.fromHtml (""+ - 버튼 + "
"+ 발 + "
")) 이 같은 추가! .content (Html.fromHtml (""+ - 버튼 + "
") + 발 + "
")는 이 작은 실수는 내 시간의 시간을 먹었다! @Ben P 덕분에 대답이 실현되었습니다! – AndroidManifester

0

이 시도 :

buttonText.setTypeface(null, Typeface.BOLD); 
+0

죄송합니다 - 버튼은 문자열 변수입니다! 서체는 문자열 변수에 사용할 수 있습니다. 나는 .. 오류를 표시하려고 시도했습니다. – AndroidManifester

+0

해결책에 대해 자세히 설명해 주시겠습니까? –

+0

이렇게 추가하는 대신 .content (Html.fromHtml (""+ buttonText + "
"+ val + "
"))를 추가하면됩니다. .content (Html.fromHtml (""+ - 버튼 + "
") + 발 + "
") – AndroidManifester

1

당신은 그것을 위해 SpannableString을 사용할 수 있습니다. 그런 다음 코드이 txt라는 텍스트 뷰 집결지 말하는 것은 : 나는 재료 대화 도서관에서 볼이 그것에 대해 버그를 가지고 있기

SpannableStringBuilder sb = new SpannableStringBuilder("HELLOO"); 
StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); 

sb.setSpan(bss, 0, sb.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); 

txt.setText(sb); 

그렇게 https://github.com/afollestad/material-dialogs/issues/1290 이상 코드

@NonNull 
@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 


     return new MaterialDialog.Builder(getActivity()) 
       .title(R.string.about) 
       .positiveText(R.string.dismiss) 
       .content(fromHtml(getString(R.string.about_body))) 
       .contentLineSpacing(1.6f) 
       .build(); 


    } 
@SuppressWarnings("deprecation") 
public static Spanned fromHtml(String html){ 
    Spanned result; 
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { 
     result = Html.fromHtml(html,Html.FROM_HTML_MODE_LEGACY); 
    } else { 
     result = Html.fromHtml(html); 
    } 
    return result; 
} 
} 

아래 시도

업데이트

+0

이 하나가 또한 작동하지 않습니다! 나는 실수가 어디 있는지 모른다. 어떤 코드가 도움이 될까요?! 여기에 어떤 텍스트 뷰도 사용하지 않습니다 .. – AndroidManifester

+1

@ ranjithstar256 대화 상자에 제 3 자 라이브러리를 사용하고 있습니까? 콘텐츠 텍스트를 과감하게 설정하고 싶습니다. – Munir

+0

예! 나는 이것을 사용하고있다! https://github.com/afollestad/material-dialogs 올바른 질문을 주셔서 감사합니다! – AndroidManifester