web-dev-qa-db-ja.com

Android Xamarin.Formsのコンテキストにアクセスする

Xamarin.Formsを使用してAndroid Contextを取得するための古いソリューションをいくつか見ました。これらの古いソリューションは_Xamarin.Forms.Forms.Context_の使用を提案していますが、Xamarin.Formsプラットフォームが絶えず変化しているため、これはありません長く機能します。

私の例では、共有コードプロジェクトのDependencyService.Get<Interface>()を使用して、Interfaceクラスのプラットフォーム固有の実装を使用しています。

Xamarin.Andriodを使用してプラットフォーム固有の機能を使用する場合、Androidコンテキストの使用が必要です。

では、Android Contextのグローバル情報インターフェイスを取得するにはどうすればよいですか?

8
B Best
  1. ソリューションのApp.Droidプロジェクト部分で作成したクラスに移動します。
  2. 上部にusing Android.Content;が含まれていることを確認してください。
  3. コンテキストを保持する変数を作成し、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();
         }  
      }
   }
19
B Best