2012-06-04 111 views
3

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

我现在面临2个问题: 1.贝宝按钮只有在我第一次点击它时才起作用。第二次不起作用。我必须回到主菜单,然后回到关于活动,然后再次运行。 这里是:

代码发送到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("[email protected]"); 
       newPayment.setPaymentType(PayPal.PAYMENT_TYPE_NONE); 
       newPayment.setMerchantName("xxx"); 
       Intent paypalIntent = PayPal.getInstance().checkout(newPayment, mCaller); 
       (mCaller).startActivityForResult(paypalIntent, 1); 
  1. 其次的问题,我有....因为我的init在BG中的贝宝obj,如果我访问关于活动(其中贝宝按钮创建)在贝宝完成初始化之前,我崩溃...... 有关它的任何想法?

感谢 约阿夫

+0

你有没有找到解决办法? –

回答

3

如果你还在寻找一个答案,我有一个

如果你看看getCheckoutButton方法,它需要Context为参数,所以当Activity是例如说暂停,当你开始另一个Activity时,CheckoutButton的实例会以某种方式丢失。

我固定是通过使用的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(); 
    } 

这工作考虑你的ActivityonCreate初始化PayPal库和CheckoutButtonupdateButton方法。

+0

感谢它为我工作:) –