Ich habe 3 Fragmente. Fragment A, B und C. A haben einen "continue" -Button, der es nach B bringt. B haben einen continue-Button, der es nach C bringt. C habe einen "add" -Button, der es zurück nach B bringt. Jetzt ich möchte Daten von A nach B senden, wenn die Fortfahren-Taste gedrückt wird. und auch von C nach B, wenn die Schaltfläche "Hinzufügen" gedrückt wird. Ich habe versucht, Bündel zu verwenden. Es gibt mir Null-Zeiger-Ausnahme als das erste Mal, wenn von A nach B geht, das Bündel von C ist Null. Wie löst man das? Jede Hilfe wird sehr geschätzt. Bitte gehen Sie durch das Code-Snippet unterKommunikation zwischen 3 Fragmenten
Hinweis: ItemDetails wird von Fragment A und EmployeeDetails von Fragment C erhalten. Fragment Flow => 1. Fragment A 2. A bis B (ElementeListe an B übergeben) 3. B to C (Keine Kommunikation) 4. Zurück zu B von C (Mitarbeiterliste an B übergeben).
String TEMP_STRING_EMPLOYEES, TEMP_STRING_ITEMS;
EmployeeList employeeList;
ItemsList itemsList;
@Override
public void onStart() {
super.onStart();
Bundle args = getArguments();
if (args != null) {
TEMP_STRING_ITEMS = args.getString("ItemsDetails");
try {
// Set article based on argument passed in
TEMP_STRING_EMPLOYEES = args.getString("EmployeeDetails");
} catch (NullPointerException ex) {
}
} else {
}
}
//Next lines of code from MAinActivity.java
@Override public void onFragmentInteractionForEmployeeDetails (Arraylist Arraylist) {
EmployeeList employeeList = new EmployeeList(arrayList);
String correspondingJson = NavigationUtils.getStringForObject(employeeList);
B newFragment = new B();
Bundle args = new Bundle();
args.putString("EmployeeDetails", correspondingJson);
newFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack so the user can navigate back
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
}
Werfen Sie einen Blick auf [diese] (https://Stackoverflow.com/a/44008851/6950238) –
Können Sie Ihren Bundle-Code senden und senden? –
Für die Kommunikation zwischen Fragmenten können Sie entweder [über Aktivitäten] (https://developer.android.com/training/basics/fragments/communicating.html) oder folgen Sie [dieser Antwort] (https://stackoverflow.com/ a/36496481/1276636) – Sufian