读取AboutAssets.txt
使用Activity上下文读取
// 需要把AboutAssets.txt的Build Action属性设置为AndroidAsset(https://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/)
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
TextView tv = new TextView(this);
//使用Activity上下文读取
string content;
AssetManager assets = this.Assets;
using (StreamReader sr = new StreamReader(assets.Open("AboutAssets.txt")))
{
content = sr.ReadToEnd();
}
tv.Text = content;
SetContentView(tv);
}
不使用Activity上下文读取
-
创建Application子类并使用[Application]标签设置为当前程序的Application
[Application] public class DemoApplication:Application { public DemoApplication(IntPtr handle, JniHandleOwnership ownerShip) : base(handle, ownerShip) { } public static volatile Context s_appContext = null; public override void OnConfigurationChanged(Configuration newConfig) { base.OnConfigurationChanged(newConfig); } public override void OnCreate() { base.OnCreate(); s_appContext = this.ApplicationContext; } public override void OnLowMemory() { base.OnLowMemory(); } public override void OnTerminate() { base.OnTerminate(); } }
-
读取
/// <summary> /// 读取Assets文件夹下的文件(Assets文件夹可以有子文件夹) /// 需要把AboutAssets.txt的Build Action属性设置为AndroidAsset(https://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_6_-_using_android_assets/) /// DemoApplication 继承自Android.Application使用[Application]标签设置为当前程序的Application /// </summary> /// <returns></returns> public string ReadFromAssetsWithoutActivityContext() { string content; AssetManager am = ProXamarinAndroid.s_appContext.Assets; using (StreamReader sr = new StreamReader(am.Open("AboutAssets.txt"))) { content = sr.ReadToEnd(); } return content; }
-
调用
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); TextView tv = new TextView(this); //不使用Activity上下文读取 tv.Text = ReadFromAssetsWithoutActivityContext(); SetContentView(tv); }