Ich möchte zwei Fragmente miteinander kommunizieren. ProductDisplayFragment sendet das Objekt an PaymentFragment. Der folgende Code zeigt den Code, in dem ich FragmentTransaction verwendet habe, um ein Objekt an PaymentFragment zu senden.Kommunikation mit Fragmenten mit FragmentTransaction
Dieser Code funktioniert, außer wenn ich versuche, das FIRST-Objekt zu senden. Das erste Objekt wird niemals empfangen. Wenn ich versuche "paymentFragment.getProduct (product)" hinzuzufügen In der else-Anweisung stürzt die App ab.
Hier ist mein Code:
Unter 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();
}
}
Unter ProductFragment.java
public void getProduct(Product product) {
// Do something to product item
}