3
我使用DefaultHttpClient
类将一些数据发布到服务器,并在响应流中获取HTML文件。我的流保存为一个字符串,并把它传递到其中包含一个web视图来呈现在屏幕上该HTML另一个活动:webView内部的HTML
response = httpClient.execute(get);
InputStream is = response.getEntity().getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is,"utf-8"));
StringBuffer sb = new StringBuffer();
String line;
while((line=br.readLine())!=null){
sb.append(line);
sb.append("\n");
}
is.close();
Intent intent = new Intent(this,Trial.class);
intent.putExtra("trial",sb.toString());
startActivity(intent);
Log.i("SB",sb.toString());
在第二个活动,加载web视图的代码读取:
WebView browser = ((WebView)findViewById(R.id.trial_web));
browser.getSettings().setJavaScriptEnabled(true);
browser.loadData(html,"text/html", "utf-8");
当我运行此代码时,WebView无法正确呈现HTML内容。它实际上在屏幕上以URL编码格式显示HTML字符串。有趣的是,如果我将Loggers输出复制到HTML文件,然后在我的WebView中加载这个HTML(使用webview.loadurl(file:///assets/xyz.html)
),一切正常。
我怀疑字符编码有些问题。
这里怎么回事?请帮忙。
谢谢。
再次感谢马克! 这是loadDataWithBaseURL()第二次完成其重载的对应部分。首先,它是对内联CSS样式的再现,现在是这样。为什么这个特质,任何想法? 另外,感谢提醒我BasicResponseHandler,我几乎已经忘记了它。 干杯! – Samuh 2010-03-26 15:10:57
“为什么这个特质,任何想法?” - 每次我想我有一个模式,其他的东西都会打破它,所以现在我只是直接发誓loadData()。 – CommonsWare 2010-03-26 19:05:45