NavGraph - Fragment Komunikation

  • Antworten:0
Volkan Aydin
  • Forum-Beiträge: 187

28.11.2021, 20:49:51 via Website

Hallo Zusammen.
Ich habe ein neues Projekt, und wie es scheint gibt es viele neue tolle sachen mit Android Studio, so hat es ganz toll Diese Nav_graph erstellt. Diese nutze ich nun auch.
Die Kommunikation zwischen den Fragmenten war doch sehr einleuchtend und ich bin richtig, richtig schnell vorwärts gekommen.
Nun stehe ich aber vor einem Problem, das ich schon mal hatte, und mit riessiegem Aufwand lösen musste, und will nun wissen, wie man es richtig macht,da ich denke das es mit NavGraph etwas einfacher geht, es scheint aber bisher nicht zu funktionieren.

Ich habe ein Fragment, das zwei Benutzer zusammenführen soll, resp. früher war es eine reine App, wo mein Kollege die Gäste im "Restaurant" eingetragen hat, nun sollen sich diese einlogen können mit google Auth.... , um diese zusammenzuführen, hat das Fragment drei Button.
1. Bestehender Benutzer
2. Neuer Eingeloggter User
3. zusammenführen

wenn ich nun auf Button 1 und 2 drücke, geht ein Fragment auf mit einer Liste von Nutzern

binding.newUser.setOnClickListener(view1 -> {
            NavHostFragment.findNavController(MainConnectUserToProfile.this)
                    .navigate(R.id.action_mainConnectUserToProfile_to_mainAllUsers_new);
        });
        binding.oldUser.setOnClickListener(view1 -> {
            NavHostFragment.findNavController(MainConnectUserToProfile.this)
                    .navigate(R.id.action_mainConnectUserToProfile_to_mainAllUsers_old);
        });

Nun das Problem... gibt es da eine art Listener wie onResultActivitylistener in den Fragmenten. den so wie ich das sehe, startet es die erste activity einfach neu wenn ich bestätige .
Wie rufe ich die Liste auf, und kann ein Return senden...
und ich will ja jeweils die zwei nutzer aufrufen

Bundle result = new Bundle();
                        result.putInt("getOption", showOption);
                        result.putString(SYNC_AND_CONNECT_ID, ds_benutzer.getKey());
                        result.putString(SYNC_AND_CONNECT_NAME, ds_benutzer.getname());
                        NavHostFragment.findNavController(MainAllUsers.this).navigate(R.id.action_mainAllUsers_to_mainConnectUserToProfile2, result);

Das habe ich gefunden:
Communicating with fragments
Pass data between destinations
Pass results between fragments

welches davon ergibt sinn für mich? Vielen dank schonmal in vorraus

Beantworte die Frage als Erster