web-dev-qa-db-ja.com

Android TextView?

AndroidのTextViewクラスは、ここで例として説明するように、HTML.fromHtml()を介して書式設定されたテキストを表示できます。 TextViewの文字列のHTMLタグ

TextViewクラスはHTMLの小さなサブセットのみを処理できますが、どのタグと属性がサポートされ、どのタグと属性がサポートされないのかはわかりません。ここに示されている要約: http://commonsware.com/blog/Android/2010/05/26/html-tags-supported-by-textview.html は正しくないようです。例えば。 <div align = "...">は、Android 2.2を使用すると機能しません。

55
holgerm

それを探しているみんなのために調べました。

日付:2017年7月

ソース: https://Android.googlesource.com/platform/frameworks/base/+/master/core/Java/Android/text/Html.Java

Html.fromHtmlは以下をサポートします。

  • p
  • ul
  • div
  • span
  • 強い
  • b
  • em
  • 引用
  • dfn
  • 大きい
  • 小さい
  • フォント
  • ブロッククォート
  • tt
  • a
  • あなたは
  • デル
  • s
  • ストライク
  • sup
  • サブ
  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
  • img
  • br
26
Rags93

私はこの記事に気付きました:

https://web.archive.org/web/20171118200650/http://daniel-codes.blogspot.com/2011/04/html-in-textviews.html

<div>をHtml.fromHtml()でサポートされているものとしてリストしますが、「align」属性のサポートは表示しません。

(他のサポートされている属性は、そのページのタグに表示されます。)

著者は、Androidのgitリポジトリのコードを見て参照を構築したと言っています。

編集:時間が経つにつれて、サポートされるタグのリストが変更されたように見えます。例については、この後の投稿を参照してください: http://www.grokkingandroid.com/Android-quick-tip-formatting-text-with-html-fromhtml/ .

両方の記事に基づいて、ソースコードを調べることが最新の情報を取得する最も信頼できる方法であると思われることをお勧めします。

25
gcbound

String.xmlファイル内の文字列にCDataセクションを使用して、HTMLコンテンツをTextViewに実際に表示するための最良のアプローチは、以下のコードスニペットにより公平なアイデアが得られます。

// string.xmlファイル

<string name="welcome_text"><![CDATA[<b>Welcome,</b> to the forthetyroprogrammers blog Logged in as:]]> %1$s.</string>

Javaコード

String welcomStr=String.format(getString(R.string.welcome_text),username);
tvWelcomeUser.setText(Html.fromHtml(welcomStr));

文字列テキストのCDataセクションは、String.formatメソッドを使用してテキストをフォーマットした後でも、htmlタグデータをそのまま保持します。そのため、Html.fromHtml(str)は正常に機能し、ウェルカムメッセージに太字のテキストが表示されます。

出力:

お気に入りの音楽アプリストアへようこそ。としてログイン:ユーザー名

9

常に更新されているため、AndroidでサポートされているHTMLタグを追跡する最良の方法は、 Html.Java のソースコードを確認することです

4
Sid Go