linearlayout gridlayout ejemplos android fragment android-framelayout

ejemplos - gridlayout android



ProgramaciĆ³n agregada de fragmentos a framelayout en Android (1)

Estoy tratando de construir una UI combinando elementos tanto estáticos como dinámicos. Para esto, he dividido mi actividad en fragmentos: toda la navegación de la aplicación se realiza reemplazando fragmentos en lugar de navegar entre actividades.

En mi diseño de actividad principal, estoy usando un FrameLayout :

<FrameLayout android:id="@+id/mainframe" android:layout_height="match_parent" android:layout_width="match_parent" android:layout_below="@id/topsection" android:layout_above="@id/lowersection" />

Tengo un fragmento declarado como tal:

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

Luego, en mi actividad principal (que extiende FragmentActivity y usa la importación android.support.v4.app.FragmentActivity , estoy intentando cargar este fragmento en el diseño del marco.

MyFragment myf = new MyFragment(); FragmentTransaction transaction = getFragmentManager().beginTransaction(); transaction.add(R.id.mainframe, myf); transaction.commit();

He seguido esto de muchos otros ejemplos, sin embargo, estoy recibiendo un error del compilador en el comando transaction.add() , que nadie más parece haber encontrado.

El error que estoy recibiendo es: The method add(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, MyFragment) .

¿Por qué es esto? La clase MyFragment extiende Fragment así que hubiera pensado que esto funcionaría. ¿Qué estoy haciendo mal?

Edición: Las importaciones para mi actividad principal son:

import org.joda.time.DateTime; import android.app.FragmentTransaction; import android.database.Cursor; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.FragmentActivity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast;


Revisa tus importaciones. Use android.support.v4.app.FragmentTransaction lugar de android.app.FragmentTransaction .

Además, asegúrese de estar usando android.support.v4.app.Fragment y llamando a getSupportFragmentManager() . Es fácil pasar por alto estas llamadas / importaciones. Gracias a saiful103a con la sugerencia del FragmentManager.