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

Java 在Android中使用AlertDialog.setMessage()时,如何将部分文本设置为粗体?,java,android,android-alertdialog,Java,Android,Android Alertdialog,如何在使用AlertDialog的setMessage()时将部分文本设置为粗体?将和添加到我的字符串不起作用。您还需要使用Html.fromHtml()。例如: AlertDialog.setMessage(Html.fromHtml(“你好”+“+”世界“+”)); 更新: 看起来在最新的Android牛轧糖版本中已经被弃用了。虽然弃用并不意味着您现在就需要更改代码,但尽快从应用程序中删除弃用的代码是一种很好的做法。 替代品是。您只需要添加一个附加的参数来提及一个标志 if(android

如何在使用
AlertDialog
setMessage()
时将部分文本设置为粗体?将
添加到我的
字符串
不起作用。

您还需要使用
Html.fromHtml()
。例如:

AlertDialog.setMessage(Html.fromHtml(“你好”+“+”世界“+”));
更新:
看起来在最新的Android牛轧糖版本中已经被弃用了。虽然弃用并不意味着您现在就需要更改代码,但尽快从应用程序中删除弃用的代码是一种很好的做法。
替代品是。您只需要添加一个附加的参数来提及一个标志

if(android.os.Build.VERSION.SDK\u INT>=android.os.Build.VERSION\u CODES.N){
AlertDialog.setMessage(Html.fromHtml(“Hello”+“+”World“+”,Html.FROM_Html_MODE_LEGACY));
}否则{
@压制(“反对”)
AlertDialog.setMessage(Html.fromHtml(“Hello”+“”“+”World“+”);
}
有关更多详细信息,请参阅。

“Info\ntextxt”
这在xml中适用于我这描述了如何将HTML格式添加到资源字符串中

<resources>
    <string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.  
    </string>
</resources>

如果有人只想添加一个字符串,这对我很有用:

<string name="abouttxt">&lt;b>Enter license key&lt;/b></string>

这些解决方案都不适用于我,但我需要使用较旧版本的API,因此无法使用
Html.fromHtml
。要为
警报对话框的文本加粗部分
我必须使用
SpannableString

String msgPart1 = getString(R.string.PartOneOfMessage);
SpannableString msg = new SpannableString(msgPart1 + " " + boldTextString + " " + getString(R.string.PartTwoOfMessage));
msg.setSpan(new StyleSpan(Typeface.BOLD), msgPart1.length() + 1, msgPart1.length() + datumName.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
AlertDialog.setMessage(msg);

我并不是说这是最好的方式,但这是对我有效的方式。

PS:适用于文本视图,没有检查AlertDialog。您可以使用HtmlCompat.fromHtml(字符串str,flag),其中可以使用HtmlCompat.FROM\u HTML\u MODE\u LEGACY作为标志,从而避免操作系统版本检查
<string name="abouttxt">&lt;b>Enter license key&lt;/b></string>
dialog.setTitle(Html.fromHtml(getString(R.string.abouttxt)))
String msgPart1 = getString(R.string.PartOneOfMessage);
SpannableString msg = new SpannableString(msgPart1 + " " + boldTextString + " " + getString(R.string.PartTwoOfMessage));
msg.setSpan(new StyleSpan(Typeface.BOLD), msgPart1.length() + 1, msgPart1.length() + datumName.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
AlertDialog.setMessage(msg);