The*_*unk 5 assets xamarin.android xamarin
我一直在尝试使用C#和Monodroid来实现这个例子,但是在阅读和编写资产文件时遇到了困难:
http://docs.xamarin.com/android/advanced_topics/using_android_assets
我正在使用模拟器,而不是设备.
首先,我无法找到Assets.Open的命名空间.我最终发现的是
const string lfn = MyAssetFile.txt;
System.IO.StreamReader(Android.Content.Res.Resources.System.Assets.Open(lfn);
Run Code Online (Sandbox Code Playgroud)
这是正确的命名空间吗?
其次,我的资产文件在VS"属性"窗格中标记为AndroidAsset和"始终复制",但我尝试使用以下语句读取文件总是失败(找不到文件):
string settings = "";
using (StreamReader sr = new System.IO.StreamReader (Android.Content.Res.Resources.System.Assets.Open(lfn))) settings = sr.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
我的VS设置是否错误,以便资产文件没有被复制到模拟器上,或者是否正在被复制,但是我的代码打开/读取它是错误的?
你必须使用:
const string lfn = "MyAssetFile.txt";
string settings = string.Empty;
// context could be ApplicationContext, Activity or
// any other object of type Context
using (var input = context.Assets.Open(lfn))
using (StreamReader sr = new System.IO.StreamReader(input))
{
settings = sr.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,因为我目前还没有IDE,请Android.Content.Res.Resources.System.Assets引用Android资产而不是项目资产.你想用你的,所以你需要使用项目的资产AssetManager从您Activities或Contexts.
例如:Activity该类有一个名为的属性Assets.这就是你使用的.或者你使用的View是Context.Assets财产.
| 归档时间: |
|
| 查看次数: |
7957 次 |
| 最近记录: |