2017-01-30 13 views
2

this answerを理解しようとしているうちに、StringBuilderEditableの違いを理解できませんでした。このイメージ(手を引いた赤い円を除いたもの)はその答えから来ています。Android StringBuilderと編集可能

enter image description here

人ともappenddeleteinsert、およびreplaceテキストにメソッドを持っています。 Editableがインターフェイスであるのに対し、StringBuilderが実際のクラスであることがわかります。しかしEditableTextViewからtextView.getEditableText()に戻すことができます。これはインターフェイスであれば不思議そうです。舞台裏の具体的な実装は何ですか?私はまた、Editableは、StringBuilderの間にスパンを持つことができます。

私はその違いを理解していると思っていますが、もう少し説明を使うことができます。私はこの質問が既にどこに尋ねられたのか分からないことに驚いたので、私は今それを尋ねています。特にここでも

、:

  • StringBuilderEditableの違いは何ですか?
  • いつ他のものを使用する必要がありますか?
+1

編集可能なHTMLなどのマークアップを保持できます。 StringBuilderはプレーンテキストのみを保持します。あなたがインターフェイス*であれば奇妙に思われる*は何を意味しますか? – Blackbelt

+0

'TextView'から戻ってくるオブジェクトは実際には' SpannableStringBuilder'ですか?もしそうなら、 'SpannableStringBuilder myString = textView.getEditableText();'と書くと、互換性のない型エラーが出るのはなぜですか?@Blackbelt – Suragch

+0

私の質問は次のように進化しています: 'SpannableStringBuilder'と' Editable'の違いは何ですか? – Suragch

答えて

1

StringBuilderとEditableの違いは何ですか?

Editableは、htmlなどのマークアップを保持できます。 StringBuilderはプレーンテキストのみを保持します。

しかし、私はそれがインターフェイスである場合は奇妙なよう textView.getEditableText()、とのTextViewから戻って編集可能を得ることができます。 舞台裏の具体的な実装は何ですか?

これは不思議ではありません。 Editableを返します。具体的な実装方法は、テキストの設定方法によって異なります。

実際にTextViewから戻ってくるオブジェクトは、 SpannableStringBuilderですか?もしそうなら、なぜ私は互換性のない型を取得するのですか? SpaneableStringBuilderを書くとエラーが発生します。myString = textView.getEditableText();

おそらく、そうでない場合があります。あなたが知っているのはそれが編集可能だということです。 SpannableStringBuilderEditableですが、EditableSpannableStringBuilderではないため、ダウンキャストしない限りgetEditableTextの戻り値をSpannableStringBuilderに割り当てることができません。 I

関連する問題