Xamarin.Formsを使用してAndroid Contextを取得するための古いソリューションをいくつか見ました。これらの古いソリューションは_Xamarin.Forms.Forms.Context
_の使用を提案していますが、Xamarin.Formsプラットフォームが絶えず変化しているため、これはありません長く機能します。
私の例では、共有コードプロジェクトのDependencyService.Get<Interface>()
を使用して、Interface
クラスのプラットフォーム固有の実装を使用しています。
Xamarin.Andriodを使用してプラットフォーム固有の機能を使用する場合、Androidコンテキストの使用が必要です。
では、Android Contextのグローバル情報インターフェイスを取得するにはどうすればよいですか?
using Android.Content;
が含まれていることを確認してください。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();
}
}
}