Android: Hinzufügen eines einfachen Fragments

7

Ich bin ziemlich neu in Android Apps, also hoffe ich, dass ich hier Hilfe finde. Ich habe hier schon nach meinem Problem gesucht und etwas gefunden, aber das funktioniert nicht.

Ich möchte ein Fragment zu einem FrameLayout hinzufügen, aber es funktioniert nicht. Mein Ziel ist es, ein Frame (/ Framework?) Zu erstellen, das immer vorhanden ist und mit dem der Benutzer interagieren kann. Innerhalb dieses Frame in einem bestimmten "Fenster" möchte ich insgesamt fünf Seiten / Fragmente anzeigen und wechseln können Die Seiten / Fragmente können jederzeit, also habe ich einen immer vorhandenen Frame und darin dynamisch wechselnde Seiten. Aber im Moment stecke ich ganz am Anfang mit dem Hinzufügen eines einfachen Fragments zu diesem Frame (der bereits funktioniert.)

Das ist der relevante Code, den ich hoffe: Der Fehler tritt in der MainActivity.java auf (getSupportFragmentManager (). BeginTransaction (). Add (R.id.mainFrame, homeFragment) .commit ();) wo es mir sagt:

  

Fehler: (25, 55) error: keine geeignete Methode gefunden für   add (int, HomeFragment) Methode FragmentTransaction.add (Fragment, String)   ist nicht anwendbar (Argument stimmt nicht überein; int kann nicht in konvertiert werden   Fragment) -Methode FragmentTransaction.add (int, Fragment) ist nicht   anwendbar (Argument nicht übereinstimmend; HomeFragment kann nicht in konvertiert werden   Fragment)

Ich habe bereits versucht, fragment nach homeFragment zu übertragen, aber das hat nicht funktioniert.

MainActivity.java

%Vor%

activity_main.xml

%Vor%

fragment_home.xml

%Vor%

HomeFragment.java (alles ist noch automatisch generiert, aber ich habe schon etwas abgeschnitten)

%Vor%

Kann mir bitte jemand helfen?

John

    
JRsz 09.09.2014, 12:28
quelle

1 Antwort

18

Sie vermischen Klassen aus der Support-Bibliothek und die neuen Klassen, die nur für neuere Versionen des Betriebssystems verfügbar sind.

Sie importieren beispielsweise android.app.FragmentTransaction (verfügbar für API 11+), aber der Aufruf von getSupportFragmentManager().beginTransaction() gibt android.support.v4.app.FragmentTransaction ...

zurück

Sie müssen android.support.v4.app.FragmentTransaction importieren und sicherstellen, dass Ihre HomeFragment % android.support.v4.app.Fragment und nicht android.app.Fragment erweitert.

    
2Dee 09.09.2014, 12:40
quelle