2012-01-24 4 views
99

हाय मैं एक्सएमएल पार्स कर रहा हूं और फिर इसे वेब व्यू पर लोड कर रहा हूं, पार्सिंग के बाद मैं चार तार बना रहा हूं ताकि मैं सभी स्ट्रिंग को एक दृश्य में जोड़ सकूं। मैं वेब दृश्य पर दो विचार प्राप्त करने में सक्षम हूं लेकिन पहले दो तार नहीं।एंड्रॉइड पर वेबव्यू पर एचटीएमएल स्ट्रिंग कैसे पास करें

Pls मुझे मेरे कोड के साथ सुझाव देते हैं, मैं गलत कहां जा रहा हूं और वेब दृश्य पर स्वरूपित HTML स्ट्रिंग प्राप्त करने का सही तरीका क्या है। Pls मेरे कोड पर एक नज़र डालें और इस मुद्दे को हल करने में मेरी मदद करें।

@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 पाने के लिए नहीं, बल्कि पहले दो तार कृपया मुझे मित्र मदद कर रहा हूँ।

उत्तर

115

वेबव्यू में अपना डेटा लोड करने के लिए। loadData() WebView

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

की पद्धति को कॉल करें आप इस उदाहरण

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

+0

मैं उस के साथ की कोशिश की, अभी भी भी loadbaserul – cavallo

+0

साथ की कोशिश की नहीं हो रहा है कि एक स्ट्रिंग जावास्क्रिप्ट युक्त के साथ काम करने की अपेक्षा की जाती है? यह मेरे लिए काम नहीं कर रहा है – Edu

+22

यह 'webView.loadData (yourData, "टेक्स्ट/html; charset = utf-8", "UTF-8") होना चाहिए; ' – Jaroslav

137

मैं सफलतापूर्वक नीचे लाइन

//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

क्या आप इसे index.php/index.html पर पर जोड़ते हैं? –

+1

या यदि आप चाहते हैं, अन्यथा यह ठीक रहेगा –

+0

यह थोड़ा अंतराल के बाद यूआई अपडेट करता है। उस चीज़ को कैसे ठीक करें? – NarendraJi

18

पासिंग अशक्त बेहतर होगा द्वारा किया जाता है देख सकते हैं। की तरह पूर्ण कोड है:

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

क्या आप इसे [email protected]/index.html पर पर जोड़ते हैं? –

+0

@mthethelelibeseti यह एंड्रॉइड कोड है, HTML नहीं। या मैंने आपके प्रश्न को गलत समझा? –