如何将网页中的文字导入文本视图?

时间:2012-06-23 16:02:58

标签: android android-layout

如何从基本HTML页面获取文本并在TextView中显示。

我想这样做,因为它看起来比使用webview显示文本更好。

html页面上只有一行。如果需要,我可以将其更改为txt文件。

你能提供一个简单的例子吗?

1 个答案:

答案 0 :(得分:1)

您需要先使用HttpClient之类的内容下载HTML,以便从Internet检索数据(假设您需要从Internet而不是本地文件获取)。完成后,您可以在WebView中显示HTML,就像您说的那样,或者,如果HTML不复杂并且只包含一些基本标记(<a><img><strong><em><br><p>等),您可以直接将其传递给TextView,因为它支持一些基本的HTML显示。

为此,您只需致电Html.fromHtml,然后将下载的HTML字符串传递给它。例如:

TextView tv = (TextView) findViewById(R.id.MyTextview);
tv.setText(Html.fromHtml(myHtmlString));

fromHtml方法将解析HTML并应用一些基本格式,返回Spannable对象,然后可以直接将其传递给TextView的{​​{1}}方法。它甚至支持链接和图像标记(但是,对于图像,您需要实现ImageGetter来实际提供相应的Drawable)。但我不相信它支持CSS或内联样式。

如何下载HTML:

上面代码段中的myHtmlString需要包含实际的HTML标记,当然你必须从某个地方获取。您可以使用HttpClient执行此操作。

setText

仅仅使用该代码是不够的,因为它应该在一个单独的线程上完成(事实上,Android可能会拒绝在UI线程上建立网络连接。请查看AsyncTasks了解更多信息有关它的信息。您可以找到一些文档here(向下滚动到“使用Asynctask”)。