我想显示例如这个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来在Dialog上显示它。我该怎么办?
答案 0 :(得分:198)
在strings.xml中添加html源代码的最佳方法是使用<![CDATA[html source code]]>
。这是一个例子:
<string name="html"><![CDATA[<p>Text</p>]]></string>
然后你可以使用:
在TextView中显示这个htmlmyTextView.setText(Html.fromHtml(getString(R.string.html)));
如果您的html中有链接,并且您希望它们可以点击,请使用以下方法:
myTextView.setMovementMethod(LinkMovementMethod.getInstance());
答案 1 :(得分:24)
以下是大多数示例。我认为不支持pre
标记。
这是strings.xml
文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Formatting</string>
<string name="link"><b>Hello World</b> This is a test of the URL <a href="http://www.example.com/">Example</a></string>
<string name="bold"><b>This text is bold</b></string>
<string name="emphasis"><em>This text is emphasized</em></string>
<string name="sup">This is <sub>subscript</sub> and <sup>superscript</sup></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)));
答案 2 :(得分:4)
String.xml可以包含HTML实体,如下所示:
<resources>
<string name="hello_world"><span></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)));
答案 3 :(得分:3)
Android资源系统支持的所有样式都在Android文档中进行了解释。
String Resources: Formatting and Styling
可以在TextView
上直接使用和设置任何内容。如果您需要使用更多HTML标记,则需要将原始HTML(包含<
,>
的转义字符等)放入资源中,并将所有内容加载到WebView
中
答案 4 :(得分:2)
这对我有用:
import csv
file = input('csv files: ').split(',')
filters = input('Enter the filters: ').split(',')
f = open(csv_file,'r')
p=csv.reader(f)
header_eliminator = next(p,[])
<?xml version="1.0" encoding="utf-8"?>