Android Card.io返回空值
我尝试使用card.io和Xamarin(android)检索我的卡号,函数执行正确,但这一行总是返回nullAndroid Card.io返回空值,android,xamarin,card.io,Android,Xamarin,Card.io,我尝试使用card.io和Xamarin(android)检索我的卡号,函数执行正确,但这一行总是返回null var scanResult = data.GetParcelableExtra(CardIOActivity.ExtraScanResult).JavaCast<CreditCard>(); var scanResult=data.GetParcelableExtra(CardIOActivity.ExtraScanResult).JavaCast(); 我想知道的另
var scanResult = data.GetParcelableExtra(CardIOActivity.ExtraScanResult).JavaCast<CreditCard>();
var scanResult=data.GetParcelableExtra(CardIOActivity.ExtraScanResult).JavaCast();
我想知道的另一件事是,当我把我的卡放在摄像机前时,它会自动返回吗?因为,如果是这样的话,它不会发生,就在我按下键盘的时候,它叫ActivityResult
这是我的全部代码,对于仍然存在的任何疑问
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
// Get our button from the layout resource, and attach an event to it
Button button = FindViewById<Button> (Resource.Id.myButton);
button.Click += delegate {
var scanIntent = new Intent(this, typeof (CardIOActivity));
scanIntent.PutExtra(CardIOActivity.ExtraAppToken, CARDIO_TOKEN);
scanIntent.PutExtra(CardIOActivity.ExtraRequireExpiry, true);
scanIntent.PutExtra(CardIOActivity.ExtraRequireCvv, false);
scanIntent.PutExtra(CardIOActivity.ExtraRequirePostalCode, false);
scanIntent.PutExtra(CardIOActivity.ExtraUseCardioLogo, true);
scanIntent.PutExtra(CardIOActivity.ExtraSuppressConfirmation, true);
scanIntent.PutExtra(CardIOActivity.ExtraSuppressManualEntry, true);
StartActivityForResult(scanIntent, 100);
};
}
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (data != null && data.HasExtra(CardIOActivity.ExtraScanResult))
{
var scanResult = data.GetParcelableExtra(CardIOActivity.ExtraScanResult).JavaCast<CreditCard>();
RunOnUiThread(() =>
{
var sb = new StringBuilder();
sb.AppendLine("card number " + scanResult.CardNumber);
sb.AppendLine("cvv " + scanResult.Cvv);
sb.AppendLine("exipry " + scanResult.ExpiryMonth.ToString() + "/" + scanResult.ExpiryYear.ToString());
sb.AppendLine("zip " + scanResult.Zip);
var ad = new AlertDialog.Builder(this);
ad.SetTitle("New card added");
ad.SetMessage(sb.ToString());
ad.SetPositiveButton("OK", delegate
{
ad.Dispose();
});
ad.Show();
});
}
}
protectedoverride void OnCreate(捆绑包)
{
base.OnCreate(bundle);
//从“主”布局资源设置视图
SetContentView(Resource.Layout.Main);
//从布局资源中获取我们的按钮,并将事件附加到它
Button Button=FindViewById(Resource.Id.myButton);
按钮。单击+=委派{
var scanIntent=新的意图(此,类型(心脏活动));
scanIntent.PutExtra(CardIOActivity.ExtraAppToken,CARDIO_TOKEN);
scanIntent.PutExtra(心脏活动.ExtraRequireExpiry,true);
scanIntent.PutExtra(CardIOActivity.ExtraRequireCvv,false);
scanIntent.PutExtra(CardIOActivity.ExtraRequirePostalCode,false);
scanIntent.PutExtra(CardIOActivity.ExtraUseCardioLogo,true);
scanIntent.PutExtra(心脏活动.ExtraConfirmation,true);
scanIntent.PutExtra(CardIOActivity.Extra输入,真);
StartActivityForResult(scanIntent,100);
};
}
受保护的覆盖void OnActivityResult(int请求代码、结果代码、意图数据)
{
base.OnActivityResult(请求代码、结果代码、数据);
if(data!=null&&data.HasExtra(CardIOActivity.ExtraScanResult))
{
var scanResult=data.GetParcelableExtra(CardIOActivity.ExtraScanResult).JavaCast();
RunOnUiThread(()=>
{
var sb=新的StringBuilder();
sb.追加行(“卡号”+扫描结果卡号);
sb.附录行(“cvv”+scanResult.cvv);
sb.AppendLine(“exipry”+扫描结果.ExpiryMonth.ToString()+“/”+扫描结果.ExpiryYear.ToString());
sb.AppendLine(“zip”+scanResult.zip);
var ad=new AlertDialog.Builder(此);
ad.SetTitle(“新增卡”);
ad.SetMessage(sb.ToString());
ad.SetPositiveButton(“确定”,代表
{
ad.Dispose();
});
广告秀();
});
}
}
能否删除JavaCast并查看它是否仍然为空?还有resultCode的值是多少,是Result。好吗?我现在测试并发布结果。