Я хочу, чтобы два фрагмента связывались друг с другом. ProductDisplayFragment отправит объект в PaymentFragment. Следующий код показывает код, в котором я использовал FragmentTransaction для отправки объекта в PaymentFragment.Общение с фрагментами с использованием FragmentTransaction
Этот код работает, за исключением случаев, когда я пытаюсь отправить через FIRST объект. Первый объект никогда не принимается. Когда я пытаюсь добавить «paymentFragment.getProduct (продукт)»; в противном случае приложение будет аварийно завершено.
Вот мой код:
Под ProductDisplayFragment.java:
@Override
public void onProductSelected(Product product) {
PaymentFragment paymentFragment = (PaymentFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_payment_list);
if(paymentFragment != null) {
paymentFragment.getProduct(product);
} else {
paymentFragment = new PaymentFragment();
Bundle args = new Bundle();
args.putSerializable(KEY_PRODUCT, product);
paymentFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_payment_list, paymentFragment);
transaction.addToBackStack(null);
transaction.commit();
}
}
Под ProductFragment.java
public void getProduct(Product product) {
// Do something to product item
}