2

我想突出显示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);
}

所以文本的第一部分是从0correctPartEndIndex(它带有下划线),第二部分是从correctPartEndIndex到结尾(它被删除)。在 ICS 及更高版本上一切都按预期工作,但在 2.2 和 2.3.3 上,两个跨度都应用于整个文本(文本同时带有下划线和删除线),这让我思考start并且end参数被忽略了。

我究竟做错了什么?

4

0 回答 0