我在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);
...
}