Hallo, ich analysiere XML und lade es dann in die Webansicht. Nach dem Parsen erstelle ich vier Zeichenfolgen, damit ich alle Zeichenfolgen an eine Ansicht anhängen kann. Ich kann zwei Ansichten in der Webansicht abrufen, aber nicht die ersten beiden Zeichenfolgen.
Bitte schlagen Sie mir mit meinem Code vor, wo ich falsch liege und wie ich die formatierten HTML-Zeichenfolgen in der Webansicht richtig abrufen kann. Bitte schauen Sie sich meinen Code an und helfen Sie mir, dieses Problem zu lösen.
@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;
}
}
Ich kann KapitelIntro und Kapitelinhalt in der Webansicht abrufen, aber nicht die ersten beiden Zeichenfolgen helfen mir, Freunde.
So laden Sie Ihre Daten in WebView. Rufen Sie die loadData () -Methode von WebView auf
Sie können dieses Beispiel überprüfen
http://developer.android.com/reference/android/webkit/WebView.html
quelle
webView.loadData(yourData, "text/html; charset=utf-8", "UTF-8");
Null zu übergeben wäre besser. Der vollständige Code lautet wie folgt:
quelle
Das Laden normaler Daten funktionierte bei mir nicht, die Konvertierung in Base64 funktionierte einwandfrei.
Details finden Sie in WebView
quelle