// 须要把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); }
建立Application子类并使用[Application]标签设置为当前程序的Applicationandroid
[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(); } }
读取app
/// <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; }
调用ide
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); TextView tv = new TextView(this); //不使用Activity上下文读取 tv.Text = ReadFromAssetsWithoutActivityContext(); SetContentView(tv); }