从非 Activity Class 访问 AssetManager
Access AssetManager from a Non-Activity Class
我正在努力学习 Xamarin
,在学习的同时,我也在学习 SQLite
。虽然我目前正在努力研究如何将 Assets
文件夹中的 SampleDb.db
导出到 Android 文件系统的某个地方(比如 Personal Folder
里面)。
我的问题是我似乎无法在单独的 class.
上访问 AssetManager
我试过将我的 class 扩展到 BaseControl : Activity
and/or BaseControl : MainActivity
结果就是这样
我还尝试通过 using Android.Content.Res
和实例化 AssetManager
添加对 Android.Content.Res
的引用,这就是发生的事情
虽然我确实可以使用这个 void method
如果我将它放在 MainActivity
Class 中,但我不想做这样的事情,因为我会想把这个分开。
希望我能在这里挑选一些提示和技巧。谢谢
自从发布这个问题后,我就继续在整个网络上搜索解决方案。另一个用户在另一个网站上发布了与我相同的问题,但事实证明他的方法(他的方法对他不起作用,我不知道为什么)对我有用。
所以我所做的是,将 Assets.Open(DbFile)
更改为 Application.Context.Assets.Open(DbFile)
,它起作用了。好吧,我还没有测试过,但应用程序没有抛出任何异常,当我通过断点跟踪流程时,一切进展顺利
我正在努力学习 Xamarin
,在学习的同时,我也在学习 SQLite
。虽然我目前正在努力研究如何将 Assets
文件夹中的 SampleDb.db
导出到 Android 文件系统的某个地方(比如 Personal Folder
里面)。
我的问题是我似乎无法在单独的 class.
上访问AssetManager
我试过将我的 class 扩展到 BaseControl : Activity
and/or BaseControl : MainActivity
结果就是这样
我还尝试通过 using Android.Content.Res
和实例化 AssetManager
添加对 Android.Content.Res
的引用,这就是发生的事情
虽然我确实可以使用这个 void method
如果我将它放在 MainActivity
Class 中,但我不想做这样的事情,因为我会想把这个分开。
希望我能在这里挑选一些提示和技巧。谢谢
自从发布这个问题后,我就继续在整个网络上搜索解决方案。另一个用户在另一个网站上发布了与我相同的问题,但事实证明他的方法(他的方法对他不起作用,我不知道为什么)对我有用。
所以我所做的是,将 Assets.Open(DbFile)
更改为 Application.Context.Assets.Open(DbFile)
,它起作用了。好吧,我还没有测试过,但应用程序没有抛出任何异常,当我通过断点跟踪流程时,一切进展顺利