Android PayPal SDK和片段

Android PayPal SDK和片段,android,paypal,android-fragments,Android,Paypal,Android Fragments,我以前在我的常规应用程序中使用过PayPal SDK。以下是我在正常活动中采取的步骤 a)在activity的onCreate上,我创建了一个新线程来初始化PayPal库 b)如果初始化顺利,我会创建一个PayPal按钮,并将其添加到我的一个布局中 c)在PayPal按钮的onClick上,我为用户付款的结果启动一个新的活动 d)在活动的onActivityResult上,我检查付款是否成功并保存信息 到目前为止,这很有效,但当我尝试在片段上使用相同的方法时,事情变得一团糟。我的片段有一个包含2

我以前在我的常规应用程序中使用过PayPal SDK。以下是我在正常活动中采取的步骤

a)在activity的onCreate上,我创建了一个新线程来初始化PayPal库

b)如果初始化顺利,我会创建一个PayPal按钮,并将其添加到我的一个布局中

c)在PayPal按钮的onClick上,我为用户付款的结果启动一个新的活动

d)在活动的onActivityResult上,我检查付款是否成功并保存信息

到目前为止,这很有效,但当我尝试在片段上使用相同的方法时,事情变得一团糟。我的片段有一个包含2个EditText和一个LinearLayout的布局,该布局将承载Paypal按钮

到目前为止,我是这样做的:

@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
现在我的问题是:

  • 我应该在哪里以及如何初始化paypal库

  • 从我的片段中,我可以为result启动一个活动并捕获activityresult吗


谢谢。

实际上,我最后使用的方法很简单,就是在我的主要托管活动中添加片段之前先初始化paypal库。通过这种方式,它工作得很好。

是的,您可以在片段中捕获活动结果。