相关疑难解决方法(0)

使用AssetManager.list在子目录中列出资产

我的应用程序有一个资产目录,我在其中转储了一堆我需要在运行时加载的文本文件.

我有一个目录充满了特定类型的资产(即"assets/subdir"),我想加载这个目录中的所有文件,一次一个.

我有这样的代码:


AssetManager assetMgr = getAssets();

String[] assetsIWant = assetMgr.list("subdir");

for(String asset: assetsIWant) {
  doAssetyThing(asset);
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了大量不同版本的参数到assetMgr.list()并且没有到达任何地方.

如果我使用"/",我会返回一个包含"assets"目录的列表,以及一些随机的其他项目(例如META_INF).如果我传递任何其他字符串(如"assets"或"assets /"或"/ assets"或"/ assets /"或"mysubdir"或"/ mysubdir"或"assets/mysubdir"或...)那么我得到回一个空数组.

遗憾的是,文件相当不连贯.

有人知道list()参数的正确公式是什么吗?

java android

43
推荐指数
5
解决办法
4万
查看次数

在WebView中显示Android资产文件?

我已经看到了关于从资产提供WebView页面的问题的各种讨论,其中没有一个看起来是确定的.

我希望能够使用webview显示存储在项目资产中的html(和包含的css)文件.

我发现wv.loadUrl("file:///android_asset/html_no_copy/demo_welcome.html")显示该文件没问题,但是demo_welcome.html中的链接,无论是本地(没有url前缀文件名)还是绝对 - 相同form for fed to loadUrl - 不起作用.他们在视图上显示"网页不可用"错误.

WebView wv = (WebView)this.findViewById(R.id.splashWebView);
wv.loadUrl("file:///android_asset/html_no_copy/test.html"); // Works
Run Code Online (Sandbox Code Playgroud)

要么

wv.loadUrl("file:///android_asset/html_no_copy/demo_welcome.html"); // Works
Run Code Online (Sandbox Code Playgroud)

但是demo_welcome.html中的以下链接都不起作用:

<a href="test.html">CLICK HERE</a><p>
<a href="file:///android_asset/html_no_copy/test.html">OR HERE</a>
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过编写内容提供商来解决这个问题,但这看起来很极端.

我希望这可以从SDK 1.6(4)开始工作.

有没有人知道这是否可以用HTML完成,还是需要克隆一些代码来加载数据?

android webkit

23
推荐指数
2
解决办法
5万
查看次数

标签 统计

android ×2

java ×1

webkit ×1