2017-12-08 48 views
1

文字列変数の中に格納されたテキストを太字にしたい。文字列変数に格納されているテキストを太字にするにはどうすればよいですか?

文字列buttonText = t.getText()。toString(); 文字列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(); 

(buttonText + "\ n" + val)で 私は、この内部に格納された文字列を太字になりたいです。 私はそれが変換される

が上記にスペースを追加( "< B> "+ buttonText +" </B>")はこのHtml.fromHtmlよう

が動作していないhtml.fromhtmlを試みました太字の

と他の方法では、<とstrings.xmlで宣言していますが、私はここでプログラム的に扱っているのでここでは機能しません!

最終的に文字列ボタンのテキストが出力ファイルに表示されたときに太字で表示されます。

私はすでにこのSet TextView text from html-formatted string resource in XML

アップデートと呼ばれている:使用なしTextViewにはありません
を。

誰かが助けてください!

答えて

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

の代わりにこの.content(Html.fromHtml( ""+ buttonText +"
"+ヴァル+"
"))のような追加 私はこのような追加!!! .content(Html.fromHtml( ""+ buttonText +"
")+ヴァル+"
") この小さなミスは私の時間の時間を食べました! @Ben Pのおかげで、あなたの答えは私にこれを実現させました! – AndroidManifester

0

はこれを試してみてください。

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

申し訳ありませんbuttonTextは、文字列変数です!私はそれがエラーを表示しようとしました – AndroidManifester

+0

あなたはあなたの解決策について詳しく説明できますか? –

+0

このように.content(Html.fromHtml( "" + buttonText + "
" + val + "
"))のように追加する代わりに、このように追加しました。 .content(Html.fromHtml( "" + buttonText + "
")+ val + "
") – AndroidManifester

1

あなたはそれのためにSpannableStringを使用することができます。あなたは、コードTXTという名前のTextViewをaveの言うことです:私は材料ダイアログ図書館で見られることが、そのためにバグを持っていたよう

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あなたはダイアログにサードパーティのライブラリを使用していますか?コンテンツテキストを太字に設定したいのですか? – Munir

+0

はい!私はこれを使用しています!適切な質問をしていただきありがとうございます。https://github.com/afollestad/material-dialogs – AndroidManifester

関連する問題