2012-06-04 156 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

感謝它爲我工作:) –