In meiner benutzerdefinierten Ansicht habe ich eine Java-Klasse, die ein einfaches Spiel ausführt. Wenn das Spiel beendet ist, möchte ich meine DialogFragment
anzeigen, aber die getFragmentManager()
Methode scheint nicht definiert zu sein.Zugriff auf FragmentManager in einer benutzerdefinierten Ansichtsklasse
FragmentManager manager = getFragmentManager();
Finish finish = new Finish();
finish.show(manager, "done");
Ich habe versucht, den Manager durch eine Fragment
obj bekommen wie:
Fragment fragment = new Fragment();
FragmentManager manager = fragment.getFragmentManager();
Aber das kehrt als null. Ich weiß, es ist eine neue Instanz, aber ich bin mir nicht sicher, welchen Wert es geben soll. Jede Hilfe würde sehr geschätzt werden.
Ihre 'Ansicht' sollte nicht direkt mit' FragmentManager' interagieren. Erstellen Sie stattdessen eine Schnittstelle, die Ihre 'Activity' implementieren kann, wodurch Ihre' View' signalisieren kann, dass das Spiel fertig ist, und die 'FragmentTransaction' in der Interface-Methode' Activity'. –
So etwas wie eine statische Methode in der Elternansicht, und rufen Sie es an, um das Spiel zu signalisieren, ist beendet (und mit meinem Fragment dort fortfahren)? – Brian
Nein. Sie können nicht von einer statischen Methode auf den 'FragmentManager' zugreifen, ohne dass ein wackeliges Parameter-Relaying erfolgt. Verwenden Sie eine 'Schnittstelle'. –