如何将htmlstring传递给android上的webview
您好我parsingXML然后将其加载到Web视图,parsing后我创build四个string,以便我可以将所有string追加到一个视图。 我能够在Web视图上获得两个视图,而不是前两个string。
请告诉我与我的代码,我在哪里出错了,什么是正确的方式来获得格式化的网页视图的HTMLstring。 请看看我的代码,并帮助我解决这个问题。
@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub String chapterTitle = ""; String SubChapterTitle=""; String chapterIntro =""; String chapterContent=""; View view = convertView; if (convertView == null) { // view = inflater.inflate(resourceid, null); view = getLayoutInflater().inflate(R.layout.webviewitem, null); } synchronized (view) { WebView wv = (WebView) view.findViewById(R.id.contentWebView); WebSettings settings = wv.getSettings(); settings.setUseWideViewPort(true); settings.setLoadWithOverviewMode(true); settings.setJavaScriptEnabled(true); settings.setDefaultZoom(ZoomDensity.FAR); // wv.setBackgroundColor(0); wv.setVerticalScrollBarEnabled(false); wv.setHorizontalScrollBarEnabled(false); /*String txtChapTitle = Intro.book.getsecretList().get(position) .getChtitle().toString();*/ if (!(Intro.book.getsecretList().get(position).getChtitle() .toString().equals(""))){ chapterTitle = "<b><fontSize=4>"+Intro.book.getsecretList().get(position) .getChtitle().toString()+"</font></b>"; } if (!(Intro.book.getsecretList().get(position) .getSubtitle() == null)) { SubChapterTitle = "<b><fontSize=4>"+Intro.book.getsecretList().get(position) .getSubtitle().toString()+"</font></b>"; } if (!(Intro.book.getsecretList().get(position) .getIntro() == null)) { chapterIntro = "<b><fontSize=2>"+Intro.book.getsecretList().get(position) .getIntro().toString()+"</font></b>"; } if (!(Intro.book.getsecretList().get(position) .getContent() == null)) { chapterContent = "<fontSize=2>"+Intro.book.getsecretList().get(position) .getContent().toString()+"</font>"; } StringBuilder content = new StringBuilder(); content.append(chapterTitle+SubChapterTitle+chapterIntro+chapterContent); JsInterface Jsi = new JsInterface(); Jsi.wordDef = content ; Log.v("Content", "" +content); wv.addJavascriptInterface(Jsi, "interfaces"); wv.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { view.setHapticFeedbackEnabled(false); } }); wv.setWebChromeClient(new WebChromeClient() { @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { return super.onJsAlert(view, url, message, result); } }); wv.loadUrl("file:///android_asset/wordview.html"); } return view; } }
我能够得到chapterIntro和chaptercontent在networking视图,但不是前两个string,可以帮助我的朋友。
我已经成功完成了下线
//data == html data which you want to load WebView webview = (WebView)this.findViewById(R.id.webview); webview.getSettings().setJavaScriptEnabled(true); webview.loadDataWithBaseURL("", data, "text/html", "UTF-8", "");
在WebView中加载数据。 调用WebView的loadData()方法
webView.loadData(yourData, "text/html; charset=utf-8", "UTF-8");
你可以检查这个例子
http://developer.android.com/reference/android/webkit/WebView.html
通过null会更好。 完整的代码如下所示:
WebView wv = (WebView)this.findViewById(R.id.myWebView); wv.getSettings().setJavaScriptEnabled(true); wv.loadDataWithBaseURL(null, "<html>...</html>", "text/html", "utf-8", null);
您好标题创buildstring更改为:
if (!(Intro.book.getsecretList().get(position).getChtitle() .toString().equals(""))){ chapterTitle = "<b><fontSize=4>"+Intro.book.getsecretList().get(position) .getChtitle().toString()+"</font></b>"; }