1

我在应用程序中使用 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、邮件和消息分享。所以,请帮助我需要做的事情。

4

1 回答 1

1

好的,我已经与您的代码一起尝试HTMLString...

似乎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)返回 a SpannableString,而 this 又不能放在ShareIntent.

因此,如果您明确调用toString()返回的Spannable,它将起作用。

所以这条线应该是这样的:

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

附带说明:您HTML的无效,因此它可能根本不会返回任何有用的东西,但现在无论如何都可以发送它。

于 2013-04-16T21:45:51.643 回答