如何从HTML STRING CONTENT获取文本内容并通过各种方式分享?

时间:2013-04-09 16:04:12

标签: android html xml

我在应用程序中使用HTML STRING CONTENT作为WEBVIEW。 HTML STRING CONTENT的代码写为:

text = "<html><body>" +
 "<p align=\"justify\">"+ 
getString(R.string.hadesc1)+
"</p>"+<p align=\"justify\">"+
getString(R.string.hadesc2)+"</p>"+
"<p align=\"justify\"><b>"+
getString(R.string.hadesc3)</b>/p>"+
"<p align=\"justify\">"+
getString(R.string.hadesc4)+
"</p>"+"<p align=\"justify\"><b>"
+getString(R.string.hadesc5)+
"</b></p><dl>"+"<dt align=\"justify\"><b><u>"
+getString(R.string.hadesc7)+"</u></b></dt>"+
 "<dd align=\"justify\">"+
 getString(R.string.hadesc8)+"</dd>"

我在

中使用它
mWebView.loadData(text, "text/html; charset=UTF-8", null);`

但是,我想只分享上述数据中的文字。所以, 我已经编写了这样的代码,

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setType("text/plain");                
sendIntent.putExtra(android.content.Intent.EXTRA_TEXT,Html.fromHtml(text));
startActivity(Intent.createChooser(sendIntent, "Share Via:"));

但是,它只为电子邮件共享。 我需要通过蓝牙,Facebook,邮件和消息分享。所以,请帮助我做我需要做的事。

1 个答案:

答案 0 :(得分:1)

好的,我已经与HTML中的String一起尝试了代码...

似乎String text无法转换为HTML,因此“静默”转换失败,并在LogCat中发出警告:

04-16 23:44:40.527: W/Bundle(1983): Key android.intent.extra.TEXT expected String but value was a android.text.SpannableString.  The default value <null> was returned.
04-16 23:44:40.527: W/Bundle(1983): Attempt to cast generated internal exception:
04-16 23:44:40.527: W/Bundle(1983): java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String

方法Html.fromHtml(text)会返回SpannableString,而这又不能放在ShareIntent内。

因此,如果您在返回的toString()上明确地呼叫Spannable,那么它将起作用。

所以该行应如下所示:

sendIntent.putExtra(android.content.Intent.EXTRA_TEXT,Html.fromHtml(text).toString());

在旁注:您的HTML无效,因此可能根本不会返回任何有用的内容,但现在无论如何都可以发送。{/ p>