のテキストの 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);
}
したがって、テキストの最初の部分は0
to からcorrectPartEndIndex
(下線が引かれています)、2 番目は fromcorrectPartEndIndex
から最後まで (取り消し線が引かれています) です。ICS 以降ではすべてが期待どおりに機能しますが、2.2 と 2.3.3 では両方のスパンがテキスト全体に適用されます (テキストに下線が引かれ、同時に取り消し線が引かれますstart
) end
。
私は何を間違っていますか?