如何在android中的同一文本视图中使用粗体和普通文本?

时间:2016-06-06 15:52:01

标签: android spannablestring

我搜索了互联网并尝试了以下代码,但它无效

SpannableString ss1 = new SpannableString("Health: ");
           ss1.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), 0, ss1.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            textview1.setText("\n"+ss1+strhealth+"\n\n");

我希望输出像这样 健康:

strhealth =好 但它出来了健康:好 这是什么错误?

我正在使用android studio 2.1.1

7 个答案:

答案 0 :(得分:13)

IPHostEntry hostInfo = Dns.GetHostEntry( "server.hostname.com" );
foreach(IPAddress ip in hostInfo.AddressList)
    Debug.Log( "Ip: " + ip.ToString() + ": address family: " + ip.AddressFamily );

答案 1 :(得分:7)

最简单的方法是

textview1.setText(Html.fromHtml("<b>Health:</b> good"));

代码中的错误是在这里使用字符串连接:"\n"+ss1+strhealth+"\n\n"删除所有格式,因为组件被视为普通字符串。

答案 2 :(得分:4)

我会使用这样的字符串资源:

<string name="health_status"><b>Health:</b> %1$s</string>

如果要设置运行状况,请使用以下代码:

String ss1 = getString(R.string.health_status, strhealth);

答案 3 :(得分:3)

我回答得有点晚,但是我通过使用此处已经提供的答案创建了一种易于使用的方法。

    private void setSpanString(String string1, String string2, TextView textView) {
    SpannableStringBuilder builder=new SpannableStringBuilder();
    SpannableString txtSpannable= new SpannableString(string1);
    StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
    txtSpannable.setSpan(boldSpan, 0, string1.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    builder.append(txtSpannable);
    builder.append(string2);
   textView.setText(builder, TextView.BufferType.SPANNABLE);
}

答案 4 :(得分:1)


下面我提到了一个代码,您可以通过它在Kotlin中创建spannableString

val spannableStringBuilder = SpannableStringBuilder()

val boldSpan: StyleSpan = StyleSpan(Typeface.BOLD)

sp_text.setSpan(boldSpan, firstIndex, lastIndex,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)

sp_text.setSpan(clickableSpan, firstIndex, lastIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
            sp_text.setSpan(ForegroundColorSpan(ContextCompat.getColor(mContext, R.color.colorPrimary)), firstIndex, lastIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)

答案 5 :(得分:0)

我认为你应该使用2个不同的textView,一个标签和一个数据。它的常见和良好做法

答案 6 :(得分:0)

在Kotlin中,您可以执行此操作。我用它来加粗字符串中的字符/单词。例如:

item =“菲律宾”

query =“ Phil”

result = 菲尔 ippines

    val spannable = SpannableString(item)
    val indexStart = item.indexOf(query)
    val indexEnd = indexStart + query.length
    spannable.setSpan(StyleSpan(Typeface.BOLD), indexStart, indexEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)

textView.text =可扩展