2011-11-24 21 views
5

का उपयोग करके सभी पृष्ठों और सभी अध्यायों को प्रदर्शित करने के लिए कैसे करें यदि मैं किसी को भी मदद कर सकता हूं तो यह कार्य करने की कोशिश की गई है, इसकी सराहना की जाएगी। तो इस कोड में यह केवल कवर पेज प्रदर्शित करेगा। मैंने http://www.siegmann.nl/static/epublib/apidocs/ पढ़ा है कि आप सबकुछ प्राप्त करने के लिए getSpine() का उपयोग कर सकते हैं, लेकिन यह केवल मेरे मामले पर एक ही चीज़ प्रदर्शित करता है जो कवर पेज है।nl.siegmann.epublib

webView = (WebView)findViewById(R.id.webView); 
webView.getSettings().setJavaScriptEnabled(true); 
AssetManager am = getAssets(); 
try { 
    InputStream epubInputStream = am.open(bookName); 
    book = (new EpubReader()).readEpub(epubInputStream); 
} catch (IOException e) { 
    Log.e("epublib", e.getMessage()); 
} 

Spine spine = book.getSpine(); 
for (SpineReference bookSection : spine.getSpineReferences()) { 
    Resource res = bookSection.getResource(); 

    try { 
     InputStream is = res.getInputStream(); 
     StringBuffer string = new StringBuffer(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 

     try { 
      while ((line = reader.readLine()) != null) { 
       linez = string.append(line + "\n").toString(); 
      } 
     } catch (IOException e) {e.printStackTrace();} 

     //do something with stream 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 
webView.loadData(linez, "text/html", "utf-8"); 
+0

मैंने समस्या का समाधान किया जब मैं घर वापस आ गया क्योंकि मेरे पास 100 प्रतिनिधि अंक कम हैं। – wesdfgfgd

+0

हैलो, क्या आप उत्तर पोस्ट कर सकते हैं? धन्यवाद – TilalHusain

उत्तर

3

तो क्या मैं http://www.siegmann.nl/static/epublib/apidocs/ पर रीढ़ की हड्डी का उपयोग कर पता लगा कि यह अभी भी वर्गों द्वारा काम करता है। इसलिए मैंने यह पता लगाने की कोशिश की कि गिनती संख्याओं की पहचान करके कितने वर्ग हैं। फिर उन नंबरों को Resource res = spine.getResource(i); में रखा गया। यदि आप Resource res = spine.getResource(2); करेंगे तो यह 2 की रीढ़ की हड्डी प्रदर्शित करेगा जो अध्याय 2 होना चाहिए जब तक कि कोई एपब के प्रारूप को गड़बड़ न करे।

Spine spine = book.getSpine(); 
List<SpineReference> spineList = spine.getSpineReferences() ; 
int count = spineList.size(); 
tv.setText(Integer.toString(count)); 
StringBuilder string = new StringBuilder(); 
for (int i = 0; count > i; i++) { 
    Resource res = spine.getResource(i); 

    try { 
     InputStream is = res.getInputStream(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
     try { 
      while ((line = reader.readLine()) != null) { 
       linez = string.append(line + "\n").toString(); 
      } 

     } catch (IOException e) {e.printStackTrace();} 

     //do something with stream 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 
webView.loadData(linez, "text/html", "utf-8"); 
+0

'संसाधन res',' इनपुटस्ट्रीम है ',' BufferedReader पाठक 'को लूप के बाहर घोषित किया जाना चाहिए ... इसके अलावा, वास्तव में आवश्यक होने तक कई प्रयास-पकड़ का उपयोग करने से बचें .... – GAMA

+0

हम स्ट्रिंग में पृष्ठों को कैसे पहचान सकते हैं? –