2012-10-30 88 views
2

我之前在我的常規應用程序中使用過PayPal SDK。下面是我參加正常活動的步驟Android PayPal SDK和片段

一)上的活動的onCreate我提出一個新的線程來初始化PayPal的庫

B)如果init順利,我創建了一個PayPal按鈕並將其添加在PayPal按鈕的onClick我的佈局)一個

ç我開始一個新的活動的結果,其中用戶進行支付

d)活動的onActivityResult我檢查付款是否成功,並保存信息

這工作到目前爲止,但事情變得雜亂,當我嘗試在片段上使用相同的方法。我的片段有2個EditTexts佈局,這將

到目前爲止,我做了這樣的主機PayPal按鈕一個的LinearLayout:

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     context = (MainActivity) getActivity(); 
     View view = inflater.inflate(R.layout.fragment_layout, container, false); 

     libraryInitializationThread = new Thread() { 
       @Override 
       public void run() { 
        initLibrary(); 
        // The library is initialized so let's create our CheckoutButton and update the UI. 
        if (PayPal.getInstance().isLibraryInitialized()) { 
         hRefresh.sendEmptyMessage(INITIALIZE_SUCCESS); 
        } else { 
         hRefresh.sendEmptyMessage(INITIALIZE_FAILURE); 
        } 
       } 
      }; 
      libraryInitializationThread.start(); 
} 

private void initLibrary() { 
     PayPal pp = PayPal.getInstance(); 

     if (pp == null) { 
      pp = PayPal.initWithAppID(context, getString(R.string.paypal_sandbox_id), PayPal.ENV_SANDBOX); 
      pp.setLanguage("en_US"); // Sets the language for the library. 
      pp.setDynamicAmountCalculationEnabled(false); 
     } 
    } 

到目前爲止,在pp = PayPal.initWithAppID我得到這個錯誤:

java.lang.IllegalStateException: Fragment FragmentPayPal{415f43f8} not attached to Activity 

現在我的問題是:

  • 在何處以及如何我應該在初始化貝寶圖書館?

  • 從我的片段,我可以開始一個活動的結果和捕獲onActivityResult?

謝謝。

+0

是的,你可以捕獲片段中的OnActivityResult。 –

回答

1

實際上,我最終使用的方法是,在我的主要託管活動中添加片段之前,僅僅是初始貝寶庫。通過這種方式,它工作得很好。