これらのインターフェースの目的は何ですか?
CharSequence
一連の文字を表す標準 Java インターフェイスです。String
は の最も一般的に使用される具体的な実装でありCharSequence
、続いてStringBuilder
.
Spanned
はCharSequence
、テキストの一部に適用するフォーマットを示す「スパン」を含む です。これらのスパンは変更できません。
Spannable
はSpanned
、スパンを変更する (書式設定を追加または削除する) 機能を追加しますが、テキスト自体を変更することはできません。
SpannedString
Spanned
インターフェイスの具体的な実装です。
SpannableString
Spannable
インターフェイスの具体的な実装です。
どのシナリオでそれらを使用するのが最も一般的ですか?
1 を返すメソッドがある場合 (たとえば でgetText()
) EditText
、または 1 をパラメーターとして受け取るメソッドがある場合 (たとえば でsetText()
) TextView
。
引用された使用のケースはHtml.fromHtml()
、従来の Android 開発でおそらく最も一般的です。 TextView
withSpanned
は a よりもはるかに軽量ですWebView
。ただし、次のような他の使用例があります。
どのような場合に使用を避けるのが最善ですか?
彼らは、ハゲとの戦い、除雪、ヒートポンプの修理、スフレの作成などで非常にひどい.
:-)
それらのいずれかを使用するときに考慮すべき明らかなパフォーマンスへの影響はありますか?
インターフェイスは、定義上、「パフォーマンスへの影響」はありません。インターフェイスは単に API の記述にすぎません。
特定の操作SpannableString
よりも大幅に遅いことは認識していません。SpannedString
ただし、SpannableStringBuilder
(テキストをフォーマットするスパンに加えてテキストを操作できるようにする)は、さまざまなものよりも少し遅くなる可能性がありSpannableString
ますSpannedString
。ただし、パフォーマンスの違いが問題になるかどうかは、使用状況によって異なります。