zoukankan      html  css  js  c++  java
  • 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);
          }
      
      
  • 相关阅读:
    SQL 高级语法 (一)
    SQL 基础语法
    Memcache数据备份和还原
    OSPF原理及配置
    kubernetes全栈监控部署
    非容器化Jenkins连接Kubernetes
    Jenkins+Ansible安装部署
    Gitlab+Nexus Maven部署
    部署docker私有仓库Harbor
    LVS实现Kubernetes集群高可用
  • 原文地址:https://www.cnblogs.com/Saints/p/8625874.html
Copyright © 2011-2022 走看看