2013-07-06 9 views
8

初めてアクティビティを作成すると、すべてうまく行きます。私は、文字列値のいくつかのテキストを変更し、AndroidでWebViewを更新するためにデータを2回読み込む必要がありました

webview.loadData(result, "text/html; charset=UTF-8", null); 
webview.loadData(result, "text/html; charset=UTF-8", null); 

でのWebViewを設定するメニューから選択した後、しかし、私は二度それをしなければならない、またはWebViewがそのまま維持されます。誰がここで何が起こるか知っていますか?結果のStringは同じなので、なぜwebviewはloadDataを2回強制しますか?

+0

私はまったく同じ問題を抱えています。あなたはそれを修正する方法を見つけましたか? – Javide

+0

いいえ、私はそれを2回ロードします。それは正しいことを示していないよりも優れているからです。おそらくそれはキャッシュに関連していると思います。だから、時間があるならば、 'public void clearCache(boolean includeDiskFiles)'や 'public void clearHistory()'を試して、動作するかどうか確認してください。私はちょうど私が何か他のことをしているときにそれをテストする時間がありません。だから彼らがうまくいくかどうか教えてください。ありがとうございました。 –

+0

私の場合に影響を与えていた問題が見つかりました。私のWebViewはViewSwitcherのサブビューです。私はWebViewをLinearLayoutに埋め込みました。これが、WebViewが最初に読み込まれたときに表示されない原因でした。 LinearLayoutを削除すると問題が解決しました。 – Javide

答えて

14

WebView#loadData(String data, String mimeType, String encoding)を避けてください - それはバグです。

代わりにWebView#loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl)を使用してください。

だからあなたの命令は次のようになります:

webview.loadDataWithBaseURL(null,result,"text/html", "utf-8", null); 
+1

ここは良いようです。だから私はこれを正しい答とマークします。 –

0

あなたの問題だか分からないが、WebViewのドキュメントを見て、あなたは間違ってloaddataのメソッドを使用している:

Webview:loadData documentation

をあなたはおそらく、このようなあなたのWebViewを呼び出す必要があります:

webview.loadData(result, "text/html", "UTF-8"); 

あなたの問題を解決するかどうかはわかりません。

+1

申し訳ありませんが、あなたの答えは近いです。ちょうどGoogle翻訳に行き、自分の言語で何かを書いてから、中国語や日本語に翻訳してください。これらの文字をプロジェクトにコピーしてコードを比較すると、私のwebviewがGoogle翻訳と同じで、あなたの文字が間違っていることがわかります。 –

+0

確かに、私の答えは間違っています:D最後のパラメータはBase64またはASCII。申し訳ありませんが、私はあなたの問題についてお手伝いできません:/ – Benoit

+0

それは問題ありません。以前と同じように私のコードで間違いを犯しました。それでも、あなたの努力に感謝します。ただし、あなたがそれをマークしている場合は、答えを0に戻してください。私の評判はそれを0に戻すには十分ではありません。 –

関連する問題