Раньше я использовал 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?
Спасибо.
Да, вы можете поймать OnActivityResult в фрагменте. –