Ich benutze Bibliotheken, um einige Karten zu bauen, mein Java erweitert Bibliotheksklasse jetzt habe ich Anforderung, FragmentManager in meiner Java-Klasse zu verwenden, habe ich versucht, das mit innerer Klasse zu tun, aber null ZeigerausnahmeFragmentiermanager holen, ohne die Aktivität zu erweitern
Antwort
Wenn Sie eine Activity
Referenz haben: activity.getFragmentManager()
Wenn Sie eine Fragment
Referenz haben: fragment.getFragmentManager()
Sie sind beide public
Methoden, aber Sie werden entweder eine Aktivität oder ein Fragment, um eine Referenz benötigen.
Auch und obwohl ich es nicht empfehlen, wenn Sie einen View
Bezug haben, die view.getContext()
Methode wahrscheinlich ein Activity
, so dass Sie vielleicht in der Lage sein zu werfen und die FragmentManager
auf diese Weise zu erhalten. Aber das ist potentiell gefährlich und könnte jederzeit aufhören zu arbeiten, wenn sich die Implementierungen von Android ändern, also sollten Sie wirklich wissen, was Sie tun. Das Übergeben einer Aktivität/Fragment-Referenz ist wirklich der richtige Weg.
Einfügen des folgenden Codes: Öffentliche Klasse CustomExpandCard erweitert CardExpand { String text1; public CustomExpandCard (Kontextkontext, String text1, String text2, String text3, String text4) { super (Kontext, R.layout.carddemo_example_inner_expand); this.text1 = Text1; } } Muss ich eine innere Klasse erstellen und Kontext darin übergeben. Eigentlich bin ich neu zu Android können Sie mir einige Beispielcode sagen, es wird viel helfen –
getFragmentManager()
ist eine public
non-static
Methode von Activity
. Um FragmentManager
zu erhalten, müssen Sie activity
context
haben. Selbst wenn Sie die Klasse activity
nicht erweitern, benötigen Sie die context
.
Schauen Sie sich auch die Beschreibung dieser Methode an, sie klärt die Dinge auf.
Geben Sie den FragmentManager für die Interaktion mit Fragmenten zurück, die mit dieser Aktivität verknüpft sind.
/**
* Return the FragmentManager for interacting with fragments associated
* with this activity.
*/
public FragmentManager getFragmentManager() {
return mFragments.getFragmentManager();
}
Also ohne activity
, FragmentManger
existiert nicht.
- 1. Öffnen Sie neue Aktivität, ohne die übergeordnete Aktivität zu verlieren
- 2. , ohne die Aktivität Nachladen
- 3. Aktivität ohne Benutzeroberfläche
- 4. Dropdown erweitern, ohne die Container-Dimensionen zu ändern
- 5. Erweitern von FragmentActivity anstelle von Aktivität
- 6. Wie aktualisiert man die Aktivität, ohne alle Daten zu verlieren?
- 7. Nur Benachrichtigung anzeigen, ohne die Aktivität zu starten
- 8. Abrufen von SupportFragmentManager ohne Erweitern von FragmentActivity
- 9. Öffnen Sie Aktivität mit einer erweitern Animation
- 10. Aktivität aktualisieren, ohne sie erneut zu öffnen?
- 11. Get belongsTo ID ohne Datensatz zu holen
- 12. So zeigen Sie eine transparente Aktivität für die andere Aktivität an, ohne die vorherige Aktivität zu entfernen
- 13. Erweitern Aktivität mit MapActivity und ActivityGroup
- 14. mysqli Abfrage Zeilenwerte ohne Schleife zu holen
- 15. Regex zu holen Muster ohne Dateierweiterungen
- 16. Start Aktivität Ohne Bluetooth
- 17. Android-Lizenzierung ohne Aktivität
- 18. Öffnen Aktivität ohne Bodenleiste
- 19. Erfrischende Aktivität ohne Absicht
- 20. So starten Sie eine neue Aktivität, ohne die aktuelle Aktivität zu töten
- 21. Vorgehensweise @Sie können eine Aktivität für das MortarActivityScope bereitstellen, ohne die Aktivität bei Orientierungsänderungen zu verlieren.
- 22. Ich möchte Daten von einer Aktivität an eine andere Aktivität senden, ohne die zweite Aktivität zu starten
- 23. Von leerer Aktivität zu Navigationsschubladen-Aktivität wechseln
- 24. Ist es möglich, MapView zu verwenden, ohne MapActivity erweitern zu müssen?
- 25. HTML-Tabelle erweitern, um Inhalte ohne Umbruch zu halten
- 26. Erweitern und erkunden JSON-Objekte ohne zu console.log (Obj) sie
- 27. Sublime Text: Akzeptieren Sie vorgeschlagene Autocomplete ohne es zu erweitern
- 28. Wie man einen String von einer Aktivität zu einer anderen sendet, ohne die zweite Aktivität zu starten
- 29. Angularjs UI-Grid - So erweitern Sie die Zeile, ohne über die nächste Zeile zu legen
- 30. UILabel erweitern, um die Seilklemme zu entfernen?
können Sie es einfach als eine externe Abhängigkeit akzeptieren, als ein Parameter entweder für den Konstruktor oder eine Methode. – ootinii