Probleme mit Fragment(en)

  • Guten Abend :),


    ich hab ein Problem :D ich hab das Tutorial hier mir durchgelesen um eine FragmentActivity mit Tabs zu schreiben (ViewPager).
    Klappt auch alles wunderbar :D nun möchte ich wenn man auf Fertig (Actionbar) drückt, gewisse werte zur FragmentActivity übergeben.


    dazu hab ich folgenes:




    da ist auch schon das Problem:


    Zitat

    Incompatible types.


    Required:
    eu.freemoser.debts2go.newDebtGrundFragment
    Found:
    android.support.v4.app.Fragment

    nach ein wenig googeln denk ich, auch schon zu wissen was das Problem ist. Liegt igwie daran das es zwei arten von Fragmenten gibt? Allerdings importiere ich doch nur aus android.support.v4.app.* ?


    hier die Importe aus der Fragment Activity:



    aus Fragment A

    Hier aus Fragment B

    und Hier der FragmentPagerAdapter




    danke schonmal fürs druchlesen

  • Schreib doch noch mal genau was du vorhast, ich glaube dein Problem ist. Du willst von einem Fragment auf ein anderes zugreifen und das kann so nicht funktionieren. Bei Fragmenten in einem Viewpager, kannst du nicht einfach auf das 4te Fragment im Adapter zugreifen, weil du gar nicht weisst ob es existent ist.


    Deswegen wahrscheinlich auch die Cast Probleme.


    -> Wenn du Daten austauschen willst, musst du sogenannte Interfaces nutzen, die definierst du in der Activity und im Fragment.
    -> sprich die Kommunikation läuft immer über die Activity -> weil dort alle anderen Fragmente verankert sind.

  • danke für die schnelle Antwort ;D


    ich möchte eigentlich das wenn man auf Fertig (button auf der Actionbar) drück von Fragmente A Name (String), Betrag (Float), Person (long), Adresse (String), Datum (date) und von Fragment B, Notiz (String) Foto (Bitmap) auf die Activity übertragen und dann in die Datenbankschreiben.


    Also Quasi nach dem Schema:


    Fragment A ---Daten----> Activity <---Daten--- Fragment B


    Activity --Daten--> Datenbank

  • Wie gesagt wenn die unterschiedlichen Fragmente in einem Viewpager sind, kannst du nicht davon ausgehen - das Sie auch wirklich da sind.
    Wenn Android Speicher braucht dann haut er die einfach aus dem Memory.


    Vorschlag:


    Fragmente haben einen eigenen Lifecycle (aehnlich wie Activities)


    http://developer.android.com/guide/components/fragments.html


    Nutze doch die onPause Funktion um die Werte des jeweiligen Fragments, schon mal beim Verlassen zwischen zu speichern.
    Beim betätigen der Actionbar (Fertig) -> musst du nur noch prüfen welches Fragment gerade aktiv ist und auch dort den aktuellen Wert sichern.


    -> dann alles zusammenrechen bzw. was auch immer passieren soll.


    ----


    Wenn ich das jetzt falsch verstanden habe und die Fragmente doch auf einer Bildschirmseite gemeinsam sind.
    Dann kannst du Dir den Fragmentmanager holen und per id/Tag nach Fragmenten suchen (von der Activity aus gesehen)


    findFragmentbyId


    oder


    findeFragmentbyTag


    je nachdem wie du die Fragmente eingebunden hast. (XML / Code)


    Java
    ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);


    Auch hier den Cast zu deinem Fragment beachten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!