我将如何设置 SpannableString
使用 strings.xml
中定义的字符串?
例如,我有:%s liked your post
那我做
SpannableString usernameSS = new SpannableString(username);
usernameSS.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 0, username.length(), 0);
getString(R.string.like_post, usernameSS);
但它不起作用 - 样式未应用,我知道我可以使用 HTML 的 <b><i>
但是有没有一种方法可以做到这一点而不必求助于 HTML?因为稍后我可能需要通过 TextAppearanceSpan
插入更复杂的样式
最佳答案
是的,这里的顺序很重要:
String finalString = getString(R.string.like_post, username);
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(finalString);
int startIndex = finalString.indexOf(username);
spannableStringBuilder.setSpannable(new StyleSpan(Typeface.BOLD_ITALIC), startIndex, startIndex + username.length(), 0);
应该这样做。请检查正确的开始/结束索引
关于android - 在 strings.xml 中定义的文本中的 SpannableString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29410105/