我唯一想到的方法是使用SpannableStringBuilder
。 Spannable
是CharSequence
,而textview.getText()
也返回CharSequence
。如果您避免进行toString
转换,则样式不会丢失。 SpannableStringBuilder还具有replace函数
,
旧字符串为oldstr
,新字符串为newstr
Spanned spanned = textView.getText();
CharSequence charSequence = spanned;
SpannableStringBuilder stringBuilder = (SpannableStringBuilder) spanned;
for (int i = 1; i < charSequence.length() - 6; i++) {
if (charSequence.charAt(i) == 'o' &&
charSequence.charAt(i+1) == 'l' &&
charSequence.charAt(i+2) == 'd' &&
charSequence.charAt(i+3) == 's' &&
charSequence.charAt(i+4) == 't' &&
charSequence.charAt(i+5) == 'r') {
stringBuilder.replace(i-1,i+6,"newstr");
}
}
spanned = stringBuilder;
textView.setText(spanned);
本文链接:https://www.f2er.com/1918451.html