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:"));

ただし、共有はメールのみです。Bluetooth、Facebook、メール、メッセージで共有する必要があります。だから、親切に私がしなければならないことを助けてください。

4

1 に答える 1

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

このメソッドは a をHtml.fromHtml(text)返し、SpannableStringこれを の中に入れることはできませんShareIntent

したがってtoString()、返されたを明示的に呼び出すと、機能しSpannableます。

したがって、行は次のようになります。

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

補足: yourHTMLは有効ではないため、有用なものは何も返されない可能性がありますが、とにかく送信できるようになりました。

于 2013-04-16T21:45:51.643 に答える