TextView tv = (TextView) findViewById(R.id.abc);
String rawString = "abcdefg";
SpannableStringBuilder ssb = new SpannableStringBuilder(rawString);
ssb.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, rawString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(ssb);
CharSequence cs = tv.getText();
System.out.println(cs.getClass());
出力は「classandroid.text.SpannedString」です。
なんで?私はそれが"SpannableStringBuilder"であることを期待しています、私のキャスト(SpannableStringBuilder ssb_2 = (SpannableStringBuilder)cs;
)は上記の例でエラーを出します。
さらに、テキストビューのバッファタイプを次のように設定すると、出力が「SpannableString」に変わります。android:bufferType="spannable"
誰もが理由を知っていますか?