3

で表示する必要のあるhtml文字列を受け取っているプロジェクトに取り組んでいWebViewます。問題は、html文字列に本文部分のみが含まれ、のようなタグがないこと<html>, <head>, <body>です。webViewで受信した文字列を表示しようとすると、サーバーから受信したhtml文字列に含まれるタグが表示されます。

これが私が受け取ったものと私がしていることのいくつかの例です:

サーバーから受信したHTML文字列:

05-30 14:02:56.785: D/(16970): body : &lt;p align=&#039;justify&#039;&gt;The so-called Fiscal Compact is unlikely to be approved by the Latvian parliament in the second and final reading as four opposition MPs said that they would not back the initiative, local media reported on Tuesday evening. The second reading is scheduled for May 31. Under local legislation, the bill should be backed by 67 MPs in the 100-seat parliament, though the ruling coalition controls only 56 seats and depends on the opposition Union of Greens and Farmers (ZZS) to approve it. During the first reading 68 MPs backed the bill. The four MPs from ZZS will meet PM Dombrovskis later today to discuss the issue. They want more clarity about the country&rsquo;s participation in neighboring Lithuania&rsquo;s nuclear power plant project. Previously, ZZS said it extends its support on condition that the government fights for higher subsidies for farmers in the 2014-2020 EU budget framework.&lt;/p&gt;

これが私のコードです:

String bodyTxt = cursor.getString(cursor.getColumnIndex("body"));
Log.d("","body : "+bodyTxt);
String newBody = "<html><body>" + bodyTxt + "</body></html>";
body.loadDataWithBaseURL(null, newBody, "text/html", "utf-8", null);

結果はこれです:

結果

を使ってみましbody.loadData(newBody, "text/html", "UTF-8"); たが、この方法でも結果が表示されませんでした。

だから私が間違っているアイデアはありますか、そしてどうすればこれを修正できますか?

前もって感謝します!

4

3 に答える 3

1

ログからわかるように、<シンボルではなく、のようなhtmlタグを受け取っています&gt;。HTML文字列のこれらの文字を置き換えると、正常に機能すると思います。これを試して :

        String bodyTxt = cursor.getString(cursor.getColumnIndex("body"));
        String replaced = bodyTxt.replace("&lt;","<");
        Log.d("","replaced : "+replaced);
        String replaced2 = replaced.replace("&gt;", ">");
        Log.d("","replaced2 : "+replaced2);
        Log.d("","body : "+bodyTxt);
        String newBody = "<html><body>" + replaced2 + "</body></html>";
        body.loadDataWithBaseURL(null, newBody, "text/html", "utf-8", null);
于 2012-05-30T15:47:35.100 に答える
1

あなたはこれを使うことができます

webview.loadData(Html.fromHtml(htmlData),"text/html","utf-8"); 
于 2012-10-25T14:13:50.713 に答える
0

これが私のやり方です。

String htmlContent = "<html><body>hello</body></html>";
WebView wv = (WebView) findViewById(R.id.my_view);
wv.loadData(htmlContent, "text/html", "UTF-8");

データベースでデータがどのように見えるかを調べます。すべての「<>」などは「<」で囲まれています。これが探している問題である可能性があります。

于 2012-05-30T11:21:35.717 に答える