我在应用程序中使用 HTML 字符串内容作为 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、邮件和短信进行分享。所以,请帮助我做我需要做的事。
最佳答案
好的,我已经尝试将代码与 String
中的 HTML
一起...
似乎 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
中。
因此,如果您在返回的 Spannable
上显式调用 toString()
,它将起作用。
所以这一行应该是这样的:
sendIntent.putExtra(android.content.Intent.EXTRA_TEXT,Html.fromHtml(text).toString());
旁注:您的 HTML
无效,因此它可能根本不会返回任何有用的信息,但现在无论如何都可以发送。
关于android - 如何从HTML STRING CONTENT中获取文本内容并通过各种方式分享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15906950/