首页 > 解决方案 > 在 Android 8 设备的应用程序中更改语言后无法获取原始文件夹文件

问题描述

我正在开发一个支持 2 种语言英语和德语的应用程序。我正在从 raw 文件夹中加载一些 html 文件以在 webview 中显示它。为此,我创建了 2 个原始文件夹,即“raw”和“raw-de”。当在 Pre-Oreo 设备上更改语言时,它会从相应的原始文件夹正确加载 html,但它不适用于 Oreo。下面是从原始文件夹加载 html 文件的代码。

txt_desc.loadUrl("file:///android_res/raw/what_is_ergo.html");

我无法弄清楚如何让它在 Android 8.0 上运行。任何帮助,将不胜感激。

标签: android

解决方案


您可以尝试像这样读取原始文件:

byte[] buffer = new byte[1024];
StringBuilder builder = new StringBuilder();
val inputStream = context.getResources().openRawResource(R.raw.what_is_ergo);

while (it.read(buffer) != -1) {
   builder.append(String(buffer));
}

txt_desc.loadDataWithBaseURL("", builder.toString(), "text/html", "UTF-8", "");

推荐阅读