2011-06-01 64 views
1

我是Android新手。如何鏈接多個HTML頁面駐留在android資產文件夾中?

我想在android模擬器中顯示HTML頁面。我將「test1.html」和「test2.html」文件放在「assets」文件夾中,並通過使用以下代碼設法在Android中顯示「test1.html」文件。

package com.example.helloandroid; 

import java.io.IOException; 
import java.io.InputStream; 

import android.app.Activity; 
import android.os.Bundle; 

public class Test extends Activity { 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     WebView webview = new WebView(this); 
     setContentView(webview); 

     try { 

      InputStream fin = getAssets().open("test1.html"); 
       byte[] buffer = new byte[fin.available()]; 
       fin.read(buffer); 
       fin.close(); 
       webview.loadData(new String(buffer), "text/html", "UTF-8"); 


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

現在,我要點擊「test1.html」文件中的按鈕或鏈接,打開「test2.html」 file.How我可以鏈接這兩個HTML頁面?

在此先感謝。

回答

1

ButtonLinktest1.html應該像正常的html文件一樣工作。確保當您爲test2.html提供路徑時,由於它們位於資產目錄中,因此與test1.html相對應。

編輯您這樣的代碼

<a href="file:///android_asset/test2.html">Next Page</a> 
+0

感謝您的回覆。我也試過了。但它給了我錯誤「網頁不可用」。有關錯誤的任何想法? – har 2011-06-01 17:44:05

+0

你給test2.html文件的路徑是什麼? – yogsma 2011-06-01 17:48:02

+0

Next Page在「test1.html」頁面 – har 2011-06-01 19:14:40

0

我要怎樣做,我想加載1級的資產,導致資產的另一個類似的事情。問題是你需要提取兩個asssets或者你會得到的網頁無效的錯誤。所以是的,你也需要爲test2創建一個輸入流。

除了使用輸入流之外,還有其他方法可以提取資產。你將不得不在你的apk中創建一個目錄並將文件移動到某個路徑並使用該路徑。這有點令人困惑,但可以幫助您計劃在未來加載許多本地資產。

0

我找不到適用於所有設備的簡潔解決方案。但我建議您首先將文件從資產複製到內部目錄(getFilesDir())。然後執行

webView.loadUrl("file://"+getFilesDir()+"/myHtml.html"); 
相關問題