// 須要把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); }