如何链接多个HTML页面驻留在android中的assets文件夹中?

时间:2011-06-01 16:54:21

标签: android html hyperlink

我是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”文件。如何链接这两个HTML页面?

提前致谢。

3 个答案:

答案 0 :(得分:1)

Button中的

Linktest1.html应该像普通的html文件一样工作。确保test2.html提供test1.html的路径与<a href="file:///android_asset/test2.html">Next Page</a> 相对,因为它们位于资产目录中。

像这样编辑你的代码

{{1}}

答案 1 :(得分:0)

我试图做类似的事情,我想加载一个导致另一个资产的资产。问题是你需要提取两个asssets,否则你将无法获得网页错误。所以,是的,您还需要为test2创建输入流。

除了使用输入流之外,还有其他方法可以提取资产。您将不得不在apk中创建目录并将文件移动到某个路径并使用该路径。这有点令人困惑,但如果您计划在未来加载许多本地资产,可以提供帮助。

答案 2 :(得分:0)

我无法找到适用于所有设备的简洁解决方案。但我建议您先将文件从Assets复制到Internal Directory(getFilesDir())。然后执行

webView.loadUrl("file://"+getFilesDir()+"/myHtml.html");