Xamarin.Android 读取AboutAssets.txt

读取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上下文读取
  1. 创建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();
            }
        }
    
  2. 读取

    
    /// <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;
    }
    
  3. 调用

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            TextView tv = new TextView(this);
            //不使用Activity上下文读取
            tv.Text = ReadFromAssetsWithoutActivityContext();
            SetContentView(tv);
        }
    

转载于:https://www.cnblogs.com/Saints/p/8625874.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值