我在Xamarin.Forms + Xamarin.Android中通过手册https://developers.google.com/pay/api/android/guides/tutorial实现。我打电话给Xamarin.Forms:

DependencyService.Get<IPay>().Pay();


在Xamarin.Android中,我实现了

public class Pay_Droid : IPay
{

public void Pay()
{
...
AutoResolveHelper.ResolveTask(
                paymentsClient.LoadPaymentData(request),
                this,
                LOAD_PAYMENT_DATA_REQUEST_CODE);
...
}

}


但是在“这个”中有问题-需要使用活动。如何执行?

最佳答案

首先,您可以在MainActivity类中创建公共静态MainActivity,然后在MainActivity OnCreate()方法中将当前MainActivity分配给macvivity:

public static MainActivity macvivity;
    protected override void OnCreate(Bundle savedInstanceState)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(savedInstanceState);


        macvivity = this;

        global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
        LoadApplication(new App());
    }


最后,您可以通过MainActivity.macvivity进行活动

public void Pay()
{
...
AutoResolveHelper.ResolveTask(
            paymentsClient.LoadPaymentData(request),
            MainActivity.macvivity,
            LOAD_PAYMENT_DATA_REQUEST_CODE);
...
}

10-08 03:08