1

Ich habe einige alte Lösungen zum Abrufen des Android Context mit Xamarin.Forms gesehen. Diese ältere Lösung schlägt die Verwendung von Xamarin.Forms.Forms.Context vor, aber aufgrund der sich ständig ändernden Xamarin.Forms-Plattform funktioniert das nicht mehr.Zugriff auf Android-Kontext in Xamarin.Forms

In meinem Beispiel habe ich das DependencyService.Get<Interface>() aus meinem Shared Code-Projekt verwendet, um eine plattformspezifische Implementierung der Klasse Interface zu verwenden.

Die Verwendung von Android Context wird eine Menge benötigt, wenn plattformspezifische Funktionalität mit Xamarin.Andiod verwendet wird.

Wie erhalten wir die globale Informationsschnittstelle für einen Android-Kontext?

Antwort

7
  1. Gehen Sie zu der Klasse, die Sie in Ihrem App.Droid-Projekt Teil Ihrer Lösung erstellt haben.
  2. Stellen Sie sicher, dass Sie using Android.Content; oben enthalten haben.
  3. Erstellen Sie eine Variable, die den Kontext enthält, und initialisieren Sie ihn mit Android.App.Application.Context.

Das war's!

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(); 
     } 
     } 
    }