在Android中使用AlertDialog.setMessage()时如何将部分文本设置为粗体?

Sui*_*tUp 47 java android android-alertdialog

如何使用时,将文本设置为粗体的一部分AlertDialogsetMessage()?添加<b></b>String不起作用.

noo*_*oob 95

你也需要使用Html.fromHtml().对于前者

AlertDialog.setMessage(Html.fromHtml("Hello "+"<b>"+"World"+"</b>"));
Run Code Online (Sandbox Code Playgroud)

更新:
看起来Html.fromHtml(String source)在最新的Android Nougat版本中已被弃用.虽然弃用并不意味着您现在需要更改代码,但最好尽快从应用中删除已弃用的代码.
替换是Html.fromHtml(String source, int flags).您只需要添加一个提示标志的附加参数.

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
   AlertDialog.setMessage(Html.fromHtml("Hello "+"<b>"+"World"+"</b>", Html.FROM_HTML_MODE_LEGACY));
} else {
   @Suppress("DEPRECATION")
   AlertDialog.setMessage(Html.fromHtml("Hello "+"<b>"+"World"+"</b>"));
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看此答案

  • PS:适用于TextView,没有检查AlertDialog. (2认同)

eli*_*eli 21

页面介绍如何将HTML格式添加到资源字符串.

<resources>
    <string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.  
    </string>
</resources>
Run Code Online (Sandbox Code Playgroud)

别忘了使用: Html.fromHtml

AlertDialog.setMessage(Html.fromHtml(getString(R.string.welcome_messages)));
Run Code Online (Sandbox Code Playgroud)

这适合我