在textview中将字符串的一部分加粗

为什么以下代码不起作用?它可以在Toast中工作,但不能在TextView中工作。当我运行程序时,boldName不会显示为粗体,但是当我将其设置为Toast时,它会显示为粗体。有人还有其他解决方案吗?

String boldName = "<b>" + name + "</b>";

Spanned conBold = Html.fromHtml(boldName);

chosen_contact.setText("You have chosen " + conBold + " as your contact.");

回答:

老实说,我不确定为什么TextViews完全按照它们的方式工作,您可以在执行操作时将其全部设置为粗体,但前提是它们的整个TextView都为粗体,但是如果其中一部分是粗体的则不能那里的其他弦乐。

但是,此代码将为您工作:

// a SpannableStringBuilder containing text to display

SpannableStringBuilder sb = new SpannableStringBuilder("You have chosen " + name + " as your contact.");

// create a bold StyleSpan to be used on the SpannableStringBuilder

StyleSpan b = new StyleSpan(android.graphics.Typeface.BOLD); // Span to make text bold

// set only the name part of the SpannableStringBuilder to be bold --> 16, 16 + name.length()

sb.setSpan(b, 16, 16 + name.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); // make first 4 characters Bold

chosen_contact.setText(sb); // set the TextView to be the SpannableStringBuilder

以上是 在textview中将字符串的一部分加粗 的全部内容, 来源链接: utcz.com/qa/412659.html

回到顶部