2011-06-21 69 views
0

我的應用必須顯示存儲在資產文件夾中的5個HTML頁面,以及如何在單個webview中顯示它們。Android在webview中加載存儲在資產文件夾中的html頁面

+0

通過在單個網頁視圖中顯示五個頁面,你是什麼意思? 至於如何從資產文件夾實際加載頁面,請參閱下面的答案。 –

+0

@StefanHållén看到我接受的答案,知道我的意思。 – Kishore

+0

投票的原因是什麼?????? – Kishore

回答

2

我發現這一點,它是專門爲Mr.Stefan哈倫(理解我的問題)

`

private WebView mWebView = null;  
    private TextView selectedText = null; 
    private long timeLeft; 
    private int pageIndex; 
    private String pagePath;  
    private String[] pageList; 
    private AssetManager assMan =null;  
    private String path="Courses/Section01"; 
    private int SelectedRow; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      setContentView(R.layout.course); 

      mWebView = (WebView) findViewById(R.id.webview); 

      assMan= this.getAssets(); 

      try { 
       pageList = aMan.list(path); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      pageIndex=0; 

      System.out.println(pageList[0]); 

      System.out.println(pageList.length); 

      pagePath=pageList[pageIndex]; 

      loadWebView(pagePath); 

      Button nextView = (Button) findViewById(R.id.nxt); 

         nextView.setOnClickListener(NextClick); 


     Button previousView = (Button) findViewById(R.id.pre); 
         previousView.setOnClickListener(PreviousClick); 
     } 

     View.OnClickListener PreviousClick = new View.OnClickListener() { 

      public void onClick(View v) { 
       GoPrevious(); 

      } 
     }; 
     View.OnClickListener NextClick = new View.OnClickListener() { 

       public void onClick(View v) { 
        GoNextNews(); 

       } 
      }; 
     private void loadWebView(String s){ 

      //mWebView.loadUrl(s); 

      mWebView.loadUrl("file:///android_asset/htmlFilesFolder/"+s); 

     } 


     private void GoNextNews() { 

      int TotalRows = pageList.length; 

      if ((SelectedRow + 1) < TotalRows) 
      { 
       SelectedRow = SelectedRow + 1; 

       String s=pageList[SelectedRow]; 

       loadWebView(s); 
       } 
     } 

     private void GoPrevious() { 

      if (SelectedRow > 0) 
      { 
       SelectedRow = SelectedRow - 1; 

       String s=pageList[SelectedRow]; 

       loadWebView(s); 

      } 
     } 
}` 
10
WebView webView = (WebView) findViewById(R.id.YourWebView); 
webView.loadUrl("file:///android_asset/your.html"); 
+0

我知道如何加載HTML頁面,我的問題是如何顯示「5 HTML頁面」在「單一「網絡視圖。 – Kishore

3
<WebView 
    android:id="@+id/testWebView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">  
</WebView> 

然後創建的HTML頁面導航湖這樣的:

<body> 

<ul id="menu"> 
    <li><a href="page1.html" title="page 1">Page 1</a></li> 
    <li><a href="page2.html" title="page 2">Page 2</a></li> 
    <li><a href="page3.html" title="page 3">Page 3</a></li> 
    <li><a href="page4.html" title="page 4">Page 4</a></li> 
    <li><a href="page5.html" title="page 5">Page 5</a></li> 
</ul> 


<h1> page 1</h1> 
</body> 

然後加載第一頁:

WebView webView = (WebView) findViewById(R.id.testWebView); 
webView.loadUrl("file:///android_asset/page1.html"); 

,所以你得到一個HTML頁面導航到其他網頁

+0

好吧,這是在HTML中,你知道如何做到這一點在Android中。 – Kishore

1

你實際上是在談論SPA(單頁應用程序),如果我沒看錯的。您應該看看Angularjs,它是一個具有proparty routeProvider的框架。您可以輕鬆加載您的html頁面,這些頁面實際上是您的主html頁面中的部分。只需在波浪鏈接上給一些時間...哦,如果你在你的項目上添加phonegap,它也可以用於android和ios。

http://docs.angularjs.org/tutorial/step_07

http://docs.angularjs.org/tutorial

樂意幫助...

0

我建議你可以將HTML文件從資產到內部目錄先複製(getFilesDir())。然後執行

webView.loadUrl(「file://」+ getFilesDir()+「/firstPage.html」);

因爲直接從Assets中,某些設備會失敗。

相關問題