我想突出显示EditText
. 这是我的做法:
EditText etOpenAnswer;
int correctPartEndIndex;
UnderlineSpan correctPartSpan=new UnderlineSpan();
StrikethroughSpan incorrectPartSpan=new StrikethroughSpan();
if (etOpenAnswer.length()>=correctPartEndIndex) {
etOpenAnswer.getText().setSpan(correctPartSpan, 0, correctPartEndIndex, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
etOpenAnswer.getText().setSpan(incorrectPartSpan, correctPartEndIndex, etOpenAnswer.length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
}
所以文本的第一部分是从0
到correctPartEndIndex
(它带有下划线),第二部分是从correctPartEndIndex
到结尾(它被删除)。在 ICS 及更高版本上一切都按预期工作,但在 2.2 和 2.3.3 上,两个跨度都应用于整个文本(文本同时带有下划线和删除线),这让我思考start
并且end
参数被忽略了。
我究竟做错了什么?