3

我已经在我的 Android 应用程序中集成了贝宝。我有一个主要活动——关于活动,我在其中显示了贝宝按钮。关于从主 Activity 访问的 Activity。Paypal 对象在一个线程中初始化,由 Application 对象的 OnCreate 创建。

我现在面临 2 个问题: 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);
  1. 第二个问题我有....因为我在 BG 中初始化了 paypal obj,如果我在 paypal 完成初始化之前访问 About 活动(其中创建了 paypal 按钮),我崩溃了......关于它?

谢谢约阿夫

4

1 回答 1

3

如果您仍在寻找答案,我有一个

如果您查看getCheckoutButton方法,它将Context作为参数,因此当Activity例如说当您启动另一个时发生的 Paused 时Activity,该实例CheckoutButton会以某种方式丢失。

我修复是通过updateButton在活动的 onResume 中使用方法

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

考虑到您已初始化库PayPalCheckoutButtononCreate.Activity

于 2012-10-10T09:45:31.300 回答