我有一个静态字符串和一个动态字符串,我将字符串和设置连接到 TextView 中。
例如 :
textview.setText(getString(R.string.status)+" "+setSpannableText(mlist.get(position).getStatus()));
Run Code Online (Sandbox Code Playgroud)
setSpannableText 方法:
private Spannable setSpannableText(String text) {
Spannable wordtoSpan = new SpannableString(text);
wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return wordtoSpan;
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,当我在 TextView 中设置文本时不连接静态字符串,例如:
textview.setText(setSpannableText(mlist.get(position).getStatus()));
Run Code Online (Sandbox Code Playgroud)
上面的行正常工作。
但是,当我执行以下操作时,它不起作用:
textview.setText(getString(R.string.status)+" "+setSpannableText(mlist.get(position).getStatus()));
Run Code Online (Sandbox Code Playgroud)
我有 5 到 10 行此设置文本视图,每一行都有不同的静态字符串。
您应该使用TextUtils.concat()连接这两个字符串:
CharSequence text = TextUtils.concat(getText(R.string.status), yourSpannable);
textview.setText(text);
Run Code Online (Sandbox Code Playgroud)
这是因为的getText()返回字符串,当你+与Spannable对象呢,结果失去了Spannable值。为此,TextUtils类中有特殊的静态方法。