我是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页面?
提前致谢。
答案 0 :(得分:1)
Button
中的 Link
或test1.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");