Android 贝宝集成
Posted
技术标签:
【中文标题】Android 贝宝集成【英文标题】:Android paypal integration 【发布时间】:2012-06-08 20:43:50 【问题描述】:我已在我的 android 应用程序中集成了 paypal。 我有一个主要活动——关于活动,我在其中显示了贝宝按钮。关于从主 Activity 访问的 Activity。 Paypal 对象在线程中初始化,由 Application 对象的 OnCreate 创建。
我现在面临两个问题: 1. Paypal 按钮仅在我第一次点击时有效。第二次不起作用。我必须返回主菜单,然后返回 about Activity,然后它又可以工作了。 这里是:
将paypal按钮添加到布局的代码:
mDonateButton = AppObj.Instance().GetPayPalObj().getCheckoutButton( mCaller,
PayPal.BUTTON_152x33,
CheckoutButton.TEXT_PAY );
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT );
mDonateButton.setLayoutParams(params);
mDonateButton.setGravity( Gravity.CENTER_HORIZONTAL );
mDonateButton.setOnClickListener( this );
LinearLayout container = (LinearLayout) findViewById( R.id.donateLayout );
container.addView(mDonateButton);
OnClick相关代码:
PayPalPayment newPayment = new PayPalPayment();
newPayment.setSubtotal(new BigDecimal(Integer.parseInt(info)));
newPayment.setCurrencyType("USD");
newPayment.setRecipient("xxx@xxx.com");
newPayment.setPaymentType(PayPal.PAYMENT_TYPE_NONE);
newPayment.setMerchantName("xxx");
Intent paypalIntent = PayPal.getInstance().checkout(newPayment, mCaller);
(mCaller).startActivityForResult(paypalIntent, 1);
-
我遇到的第二个问题......因为我在 BG 中初始化了 paypal obj,如果我在 paypal 完成初始化之前访问 About 活动(其中创建了 paypal 按钮),我会崩溃......
有什么想法吗?
谢谢 约夫
【问题讨论】:
你找到解决办法了吗? 【参考方案1】:如果你还在寻找答案,我有一个
如果您查看getCheckoutButton
方法,它将Context
作为参数,因此当Activity
用于例如说当您启动另一个 Activity
时发生的 Paused,CheckoutButton
的实例会以某种方式丢失。
我修复的是在 Activity 的 onResume 中使用updateButton
方法
@Override
protected void onResume()
/**
* The CheckoutButton has to be updated each time the Activity is
* resumed, otherwise the onClickListener of CheckoutButton will not work
**/
if (mCheckOutBtn != null && (mCheckOutBtn instanceof CheckoutButton))
mCheckOutBtn.updateButton();
super.onResume();
考虑到您在onCreate
中的Activity
中初始化了PayPal
库和CheckoutButton
,这很有效。
【讨论】:
以上是关于Android 贝宝集成的主要内容,如果未能解决你的问题,请参考以下文章
Paypal 与 Android 应用程序的集成 - 接收方