如何在使用AlertDialog
的{{1}}时将部分文字设为粗体?将setMessage()
和<b>
添加到我的</b>
不起作用。
答案 0 :(得分:90)
您也需要使用Html.fromHtml()
。对于前。
AlertDialog.setMessage(Html.fromHtml("Hello "+"<b>"+"World"+"</b>"));
<强>更新强>
在最新的Android Nougat版本中,Html.fromHtml(String source)
已被弃用。虽然弃用并不意味着您现在需要更改代码,但最好尽快从应用中删除已弃用的代码。
替换为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 {
AlertDialog.setMessage(Html.fromHtml("Hello "+"<b>"+"World"+"</b>"));
}
有关详细信息,请查看this answer
答案 1 :(得分:18)
此page描述了如何将HTML格式添加到资源字符串。
<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.
</string>
</resources>
不要忘记使用:Html.fromHtml
AlertDialog.setMessage(Html.fromHtml(getString(R.string.welcome_messages)));
这对我有用
答案 2 :(得分:0)
<string name="abouttxt">"<b>Info</b>\ntexttxtxtxtxt"</string>
这适用于xml
答案 3 :(得分:0)
如果有人只想添加一个字符串:
<string name="abouttxt"><b>Enter license key</b></string>
将此行添加到Alertdialog代码中。
dialog.setTitle(Html.fromHtml(getString(R.string.abouttxt)))
答案 4 :(得分:0)
这些解决方案都不适合我,但我必须使用旧版本的 API,因此我无法使用 Html.fromHtml
。为了将 AlertDialog
的文本部分加粗,我必须使用 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);
我并不是说这是最好的方法,但这是对我有用的方法。