Google ドキュメントで flags パラメータを読みましたが、正確に何をしているのかわかりません。たとえば、以下のコードでは:
SpannableStringBuilder builder1 = new SpannableStringBuilder();
builder1.append("hi");
builder1.append("this is test");
builder1.setSpan(new ForegroundColorSpan(Color.RED), 0, 7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
myTextView.setText(builder1);
4 番目のパラメータを変更して、次のように変数を設定しても違いはありません: Spanned.SPAN_INCLUSIVE_INCLUSIVE,Spanned.SPAN_INCLUSIVE_EXCLUSIVE,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
結果に違いはありません。
しかし、このコードを実行すると:
SpannableStringBuilder builder1 = new SpannableStringBuilder();
builder1.append("hi");
builder1.append("this is test");
builder1.setSpan(new ForegroundColorSpan(Color.RED), 0, 7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
SpannableStringBuilder builder2 = new SpannableStringBuilder();
builder1.append("second test this is going to be different");
builder1.setSpan(new BackgroundColorSpan(Color.BLUE), 10, 15, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
SpannableStringBuilder all = new SpannableStringBuilder();
all.append(builder2);
all.insert(0, "\n");
all.insert(0, builder1);
builder1.setSpan に渡す 4 番目のパラメーターに基づいて、異なる結果が得られます。
誰かがなぜこれが起こるのか説明できますか?