LoginSignup
1

More than 5 years have passed since last update.

AndroidのTextViewに表示する文字を、HTMLタグのまま書く

Posted at

環境

  • macOS High Sierra
  • Android Studio 3.2
  • Nexus 5X API 24 エミュレータ

方法

[android] TextViewでHTMLを表示するには?の抜粋。

HTMLでタグ付けした文字列を<![CDATA[]]>で囲ったものをstrings.xmlに書いて、java側で読み込んで表示する

strings.xml
<resources>
<string name="test">
    <![CDATA[
        <h1>hello HTML</h1>
    ]]>
</string>
</resources>

text_sampleというidのTextViewが定義されたlayoutをsetContentView()した上で

MainActivity.java
TextView txt=findViewById(R.id.text_sample);
txt.setText(Html.fromHtml(getString(R.string.test)));

<h1>が適用されたhello HTMLが表示されるはず
(なんでも適用できるわけではない模様。<ol>が数字にならなかったり。)

CDATAセクションとは

こちらによると、
XMLではマークアップ用記号を直接記述できないが、CDATAセクション内では可能とのこと。

XMLはマークアップ言語であるため、XML文書を記述する際には、マークアップ用として指定された記号を直接文字として記述することができない。これを記述してもマークアップの指定と解釈され、文字として解釈されないためである。しかし、場合によっては、この方法はXML文書の記述や管理を煩雑にする場合がある。このような場合に、マークアップ専用の記号であって、通常の文字として扱う特例的な部分をつくることができる。これを、CDATAセクションという。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1