在Xamarin.Forms中访问Android上下文

时间:2017-07-05 23:37:35

标签: android xamarin xamarin.android xamarin.forms android-context

我已经看到了一些使用Xamarin.Forms获取Android上下文的旧解决方案。这些较旧的解决方案建议使用Xamarin.Forms.Forms.Context,但由于不断变化的Xamarin.Forms平台,这不再适用。

在我的示例中,我使用了共享代码项目中的DependencyService.Get<Interface>()来使用Interface类的特定于平台的实现。

使用Xamarin.Andriod使用特定于平台的功能时,需要使用Android Context。

那么我们如何获得Android上下文的全局信息界面呢?

1 个答案:

答案 0 :(得分:11)

  1. 转到您在解决方案的App.Droid项目部分中创建的课程。
  2. 确保您在顶部包含using Android.Content;
  3. 创建一个变量来保存Context并使用Android.App.Application.Context初始化它。
  4. 就是这样!

    using Android.Content;
    
    [assembly: Xamarin.Forms.Dependency(typeof(DroidClass))]
    namespace App.Droid
    {
       public class DroidClass : Interface
       {
         Context context = Android.App.Application.Context;
    
         public DroidClass()
         {
            Toast.MakeText(context, "Grabbed Context!", ToastLength.Long).Show();
             }  
          }
       }