2012-01-24 12 views
99

Ciao Sto analizzando xml e quindi caricandolo in web view, dopo l'analisi sto creando quattro stringhe in modo da poter aggiungere tutte le stringhe a una vista. Sono in grado di ottenere due viste sulla vista Web ma non le prime due stringhe.Come passare una stringa html a webview su android

Pls mi suggerisce con il mio codice, dove sto andando male e quale è il modo corretto per ottenere le stringhe html formattati sulla visualizzazione web. Pls dare un'occhiata al mio codice e aiutarmi a risolvere questo problema.

@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; 
    } 
} 

io sono in grado di ottenere chapterIntro e chaptercontent sulla vista web, ma non le prime due corde pls aiutare gli amici.

risposta

115

Per caricare i dati in WebView. Chiamare loadData() metodo di WebView

webView.loadData(yourData, "text/html; charset=utf-8", "UTF-8"); 

È possibile controllare questo esempio

http://developer.android.com/reference/android/webkit/WebView.html

+0

ho provato con quello, ancora non accadendo anche provato con loadbaserul – cavallo

+0

è che dovrebbe lavorare con una stringa che contiene JavaScript? Non funziona per me – Edu

+22

dovrebbe essere 'webView.loadData (yourData," text/html; charset = utf-8 "," UTF-8 ");' – Jaroslav

137

ho fatto con successo da riga sotto

//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", ""); 
+0

aggiungi questo allo all'indice index.php/index.html? –

+1

ya se vuoi, altrimenti sarà ok –

+0

Aggiorna l'interfaccia utente dopo un po 'di ritardo. Come aggiustare quella cosa? – NarendraJi

18

passando null sarebbe meglio. I codici completa è simile:

WebView wv = (WebView)this.findViewById(R.id.myWebView); 
wv.getSettings().setJavaScriptEnabled(true); 
wv.loadDataWithBaseURL(null, "<html>...</html>", "text/html", "utf-8", null); 
+0

aggiungi questo allo all'indice index.php/index.html? –

+0

@mthethelelibeseti si tratta di codici Android, non di HTML. O ho frainteso la tua domanda? –

Problemi correlati