Android:html在strings.xml中

我想显示例如这个HTML代码:

<body> <p><b>Hello World</b></p> <p>This is a test of the URL <a href="http://www.example.com"> Example</a></p> <p><b>This text is bold</b></p> <p><em>This text is emphasized</em></p> <p><code>This is computer output</code></p> <p>This is<sub> subscript</sub> and <sup>superscript</sup></p> </body> 

我想通过在资源strings.xml声明html来将其显示在对话框中。 我该怎么做?

Solutions Collecting From Web of "Android:html在strings.xml中"

在strings.xml中添加html源代码的最好方法是使用<![CDATA[html source code]]> 。 这里是一个例子:

 <string name="html"><![CDATA[<p>Text<p>]]></string> 

然后你可以在TextView中使用下面的方式显示这个html:

 myTextView.setText(Html.fromHtml(getString(R.string.html))); 

如果你在你的html中有链接,并希望它们是可点击的,请使用下面的方法:

 myTextView.setMovementMethod(LinkMovementMethod.getInstance()); 

这里是大部分的例子。 我不认为pre标签是支持的。

在这里输入图像说明

这是strings.xml文件:

 <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Formatting</string> <string name="link">&lt;b&gt;Hello World&lt;/b&gt; This is a test of the URL &lt;a href="http://www.example.com/"&gt;Example&lt;/a&gt;</string> <string name="bold">&lt;b&gt;This text is bold&lt;/b&gt;</string> <string name="emphasis">&lt;em&gt;This text is emphasized&lt;/em&gt;</string> <string name="sup">This is &lt;sub&gt;subscript&lt;/sub&gt; and &lt;sup&gt;superscript&lt;/sup&gt;</string> </resources> 

这是布局。 请注意,链接实际上是可点击的,还有一些额外的工作需要:

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/test1" android:linksClickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="12dp" android:text="" android:textAppearance="?android:attr/textAppearanceMedium"/> <TextView android:id="@+id/test2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="12dp" android:text="" android:textAppearance="?android:attr/textAppearanceMedium"/> <TextView android:id="@+id/test3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="12dp" android:text="" android:textAppearance="?android:attr/textAppearanceMedium"/> <TextView android:id="@+id/test4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="12dp" android:text="" android:textAppearance="?android:attr/textAppearanceMedium"/> </LinearLayout> </ScrollView> 

最后,代码:

 TextView test1 = (TextView)findViewById(R.id.test1); Spanned spanned = Html.fromHtml(getString(R.string.link)); test1.setMovementMethod(LinkMovementMethod.getInstance()); test1.setText(spanned); TextView test2 = (TextView)findViewById(R.id.test2); test2.setText(Html.fromHtml(getString(R.string.bold))); TextView test3 = (TextView)findViewById(R.id.test3); test3.setText(Html.fromHtml(getString(R.string.emphasis))); TextView test4 = (TextView)findViewById(R.id.test4); test4.setText(Html.fromHtml(getString(R.string.sup))); 

String.xml可以包含HTML实体,如下所示:

 <resources> <string name="hello_world">&lt;span&gt;</string> </resources> 

在你的代码中: getResources().getString(R.string.hello_world); 将评估为"<span>" 。 你可以像这样使用这个HTML格式的文本:

 TextView helloWorld = (TextView)findViewById(R.id.hello_world); helloWorld.setText(Html.fromHtml(getString(R.string.hello_world))); 

在Android文档中解释了XML资源系统支持的所有样式。

string资源:格式和样式

任何包含的东西都可以直接在TextView上使用和设置。 如果您需要使用更多的HTML标记,则需要将原始HTML(包含&lt;&gt;等的转义字符)放入资源中,并将整个东西加载到WebView

这为我工作:

 <?xml version="1.0" encoding="utf-8"?> 

 <string name="app_name">Sangamner College</string> <string name="about_desc"><![CDATA[In order to make higher education available in the rural environment such as of Sangamner, Shikshan Prasarak Sanstha was established in 1960. Sangamner College was established by Shikshan Prasarak Sanstha, Sangamner on 23rd January 1961 on the auspicious occasion of Birth Anniversary of Netaji Subhashchandra Bose.The Arts and Commerce courses were commenced in June 1961 and in June 1965 Science courses were introduced. When Sangamner College was founded forty years ago, in 1961, there was no college available to the rural youth of this region. <br><br></>The college was founded with the aim of upliftment of the disadvantageous rural youth in all respects. On one hand, we are aware of the social circumstances prevailing in the rural area where we are working. So, we offer the elective option to students, which are favourable to the local atmosphere. On the other hand, we want to academically empower the aspiring youth by offering vocational course in Computer Applications to students of Arts &amp; Commerce. BBA, BCA and MCA courses were started with the same purpose. “Think globally, act locally” is our guiding Principle.]]></string>