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.