1

我想用 HTML 制作特定语言的帮助文件并使用浏览器查看它们。
作为第一个版本,我将英文版放在 res/raw 中(似乎没有 html 或 doc 目录)。
要启动我发现的浏览器:

        String URL = "android.resource://" + getPackageName() + "/" + R.raw.help;
        Uri u = Uri.parse(URL);
        Intent intent = new Intent(Intent.ACTION_VIEW, u);
        startActivity(intent);

但它总是抛出 ApplicationNotFound-Exception。

查看变量,我可以看到 URL 是:

         android.resource://[PACKAGE_NAME]/[NUMBER]

这也是你的内容。Uri.parse 只是复制给定的字符串。

我的问题:

我究竟做错了什么?
还有其他方法吗?
系统会在 res/raw-de 中找到文件吗?

4

3 回答 3

2

您可以使用以下命令从“资产”文件夹中打开一个 html 页面

//help_activity.xml
<?xml version="1.0" encoding="utf-8"?>
  <WebView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/helpwebview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
/>

在资源文件中,例如在strings.xml 中。“file:///android_asset”对应Android项目中的“Assets”文件夹。

<string name="help_url">file:///android_asset/help/index_de.html</string>

//HelpActivity的代码

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;

public class HelpActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.help_activity);
        WebView browser = (WebView)findViewById(R.id.helpwebview);

        WebSettings settings = browser.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setBuiltInZoomControls(true);
        browser.loadUrl(getString(R.string.help_url));
    }

}
于 2012-04-23T07:13:31.107 回答
0

我就是这样做的:

String summary = readRawTextFile(this,R.raw.help);
mWebView.loadDataWithBaseURL (null,summary, "text/html","UTF-8" ,null);
于 2012-04-23T07:13:50.773 回答
0

另一种方法是直接使用资源文件加载 WebView。

WebView wv = (WebView) findViewById(R.id.webView1);
wv.loadUrl("file:///android_asset/your_html_file.html");

确保将所有文件放在Assets文件夹中

于 2012-04-23T06:50:50.953 回答