[解決済み] Android Spanned, SpannedString, Spannable, SpannableString と CharSequence
質問
Androidには、テキストや文字列に関連する様々なインタフェースがあります。
Spanned
,
SpannedString
,
Spannable
,
SpannableString
と
CharSequence
.
私は上記のすべてを様々な場面で使用してきました。
通常
を使用した後
Html.fromHtml()
の中にリンク可能なテキストを表示するために
TextView
の中にリンク可能なテキストを表示し、それに何らかのスタイルを適用する。
Androidの公式ドキュメントからこれらのインターフェースの目的や使い方を理解しようとしましたが、非常にわかりにくいので失敗しました。 これらのインターフェイスの目的は何ですか? どのような場合に使用を避けた方がよいのでしょうか?これらのいずれかを使用するときに考慮すべき明らかなパフォーマンスの影響はありますか?
もし誰かが適切な説明を提供してくれるなら、それはとてもありがたいことです。
どのように解決するのですか?
これらのインターフェースは何のためにあるのでしょうか?
CharSequence
は、文字の並びを表現する標準的なJavaのインタフェースです。
String
の具体的な実装として最もよく使われるのが
CharSequence
であり、次いで
StringBuilder
.
Spanned
は
CharSequence
で、quot;span" はテキストの一部に適用する書式を示し、それらのspanは変更することができません。
Spannable
は
Spanned
で、スパンを変更する機能(フォーマットの追加や削除)を追加していますが
ではなく
を追加し、テキスト自体を変更できるようにしました。
SpannedString
の具体的な実装です。
Spanned
インタフェースの具体的な実装です。
SpannableString
の具体的な実装です。
Spannable
インタフェースの具体的な実装です。
どのような場面で使用されることが多いですか?
1を返すメソッドがある場合(例.
getText()
の上に
EditText
をパラメータとするメソッドがある場合(例.
setText()
の上に
TextView
).
あなたの引用した
Html.fromHtml()
は、おそらく従来の Android 開発で最も一般的なものであり、このように
TextView
と
Spanned
よりもはるかに軽い重量です。
WebView
. しかし、他にも以下のような使用例があります。
-
ユーザが リッチテキストを入力できるようにする を使用し、その後
Html.toHtml()
を使って、そのフォーマットされたテキストを HTML で表示します。
どのような場合に使用を避けた方が良いのでしょうか?
ハゲ対策、除雪、ヒートポンプの修理、スフレの作り方など、どれもこれも最悪です。
:-)
これらのいずれかを使用する際に考慮すべき、パフォーマンスへの明らかな影響はありますか?
インターフェースは、定義上、パフォーマンスに影響を与えるものではありません。
私は
SpannableString
よりも大幅に遅いということは知りません。
SpannedString
よりもかなり遅いです。しかし
SpannableStringBuilder
(これはテキストをフォーマットするスパンに加えてテキストを操作することができます) は
SpannableString
または
SpannedString
を使うことができます。パフォーマンスの違いが問題になるほどかどうかは、使い方次第でしょうけど。
関連
-
[解決済み] TextViewでテキストを水平・垂直方向にセンタリングするには?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] Android Navigation Architecture Component - 現在表示されているフラグメントを取得する
-
[解決済み] アンドロイドボタンセレクター
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] TextViewの中に複数のスタイルを持たせることは可能ですか?
-
[解決済み] CharSequence VS String in Java?
-
[解決済み】AndroidでTextViewのspanの色を設定する。
-
[解決済み] getApplication()、getApplicationContext()、getBaseContext()、someClass.thisの違いと使い分け。
-
[解決済み] wrap_contentでRelativeLayoutがフルスクリーンになってしまう
-
[解決済み] Androidアプリケーションのヒープサイズを大きくするには?
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] グリッドビューの高さが削減される
-
[解決済み] Androidでツールバーの戻るボタンの色を変えるには?
-
[解決済み] アンドロイドボタンセレクター