2012-10-30 17 views
2

Раньше я использовал SDK PayPal в своих обычных приложениях. Вот шаги, которые я беру в нормальной деятельностиAndroid PayPal SDK и фрагменты

а) на OnCreate активность, я сделать новую нить инициализировать библиотеку PAYPAL

б) если INIT идет хорошо, я создаю кнопку PayPal и добавить его в одном из моих макетов

с) на OnClick кнопки PayPal, я начать новую деятельность в результате которой пользователь производит оплату

d) о действии onActivityResult Я проверяю, был ли платеж успешным и сохранить информацию.

Это работало хорошо, но все становится беспорядочным, когда я пытаюсь использовать тот же подход на фрагменте. Мой фрагмент имеет компоновку с 2 EditTexts и 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 библиотека?

  • из моего фрагмента, могу ли я начать действие для результата и поймать onActivityResult?

Спасибо.

+0

Да, вы можете поймать OnActivityResult в фрагменте. –

ответ

1

Фактически подход, который я использовал в конце, был просто библиотекой init paypal перед добавлением фрагмента в мой основной хостинг. Таким образом, он работает отлично.

Смежные вопросы