tutorial studio navegar llamar fragments example entre dinamicos diferencia desde activity abrir android android-layout android-fragments framelayout

android - studio - Tratando de agregar un fragmento a mi contenedor de fragmentos FrameLayout



llamar un fragment desde un activity (3)

He creado un archivo xml llamado editor.xml que contiene un FrameLayout. En mi actividad principal, estoy tratando de agregar mi fragmento personalizado a mi FrameLayout.

El error que recibo al intentar agregar mi fragmento es:

El método add (int, Fragment) en el tipo FragmentTransaction no es aplicable para los argumentos (int, editorFrag)

Sin embargo, mi editorFrag extiende Fragmento, por lo que estoy confundido sobre por qué sucede esto. A continuación se muestra mi código para los archivos que he mencionado. Cualquier ayuda es apreciada.

Editor.xml

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent" />

editorFrag.java

public class editorFrag extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.newlevel, container, false); } }

MainActivity.java

public class editorActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.editor); // Check that the activity is using the layout version with the fragment_container FrameLayout if(findViewById(R.id.fragment_container) != null) { // if we are being restored from a previous state, then we dont need to do anything and should // return or else we could end up with overlapping fragments. if(savedInstanceState != null) return; // Create an instance of editorFrag editorFrag firstFrag = new editorFrag(); // add fragment to the fragment container layout getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, firstFrag); } } }

Contestado:

Luksprog respondió este problema por mí a continuación, diciéndome que compruebe mis importaciones. Eclipse eligió importar la versión SDK de Fragment en lugar de la versión de soporte que necesitaba. Gracias por la ayuda.


Olvidó commit() su transacción.


También se olvidó de llamar al método addtoBackStack() , de lo contrario, su aplicación se cerrará cuando addtoBackStack() el botón Atrás.


agregar commit () como este

getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, firstFrag).commit();