在 Xamarin.Forms 中访问 Android 上下文
Accessing Android Context in Xamarin.Forms
我见过一些使用 Xamarin.Forms 获取 Android 上下文的旧解决方案。这些较旧的解决方案建议使用 Xamarin.Forms.Forms.Context
,但由于不断变化的 Xamarin.Forms 平台,这不再有效。
在我的示例中,我使用共享代码项目中的 DependencyService.Get<Interface>()
来使用 Interface
class.
的平台特定实现
使用 Xamarin.Andriod.
使用平台特定功能时,需要大量使用 Android 上下文
那么我们如何获得Android上下文的全局信息接口?
- 转到您在解决方案的 App.Droid 项目部分创建的 class。
- 确保
using Android.Content;
包含在顶部。
- 创建一个变量来保存 Context 并用
Android.App.Application.Context
初始化它。
就是这样!
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();
}
}
}
我见过一些使用 Xamarin.Forms 获取 Android 上下文的旧解决方案。这些较旧的解决方案建议使用 Xamarin.Forms.Forms.Context
,但由于不断变化的 Xamarin.Forms 平台,这不再有效。
在我的示例中,我使用共享代码项目中的 DependencyService.Get<Interface>()
来使用 Interface
class.
使用 Xamarin.Andriod.
使用平台特定功能时,需要大量使用 Android 上下文那么我们如何获得Android上下文的全局信息接口?
- 转到您在解决方案的 App.Droid 项目部分创建的 class。
- 确保
using Android.Content;
包含在顶部。 - 创建一个变量来保存 Context 并用
Android.App.Application.Context
初始化它。
就是这样!
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();
}
}
}