Diferencia entre actividad y actividad de fragmento

Respuestas:

316

A FragmentActivityes una subclase de la Activityque se creó para el paquete de soporte de Android .

La FragmentActivityclase agrega un par de métodos nuevos para garantizar la compatibilidad con versiones anteriores de Android, pero aparte de eso, realmente no hay mucha diferencia entre los dos. Sólo asegúrese de cambiar todas las llamadas a getLoaderManager()y getFragmentManager()a getSupportLoaderManager()y getSupportFragmentManager()respectivamente.

Alex Lockwood
fuente
44
Hola, no cambié las llamadas a getSupportLoaderManager () y getSupportFragmentManager () ... pero aún funciona bien.
Novato
31
Eso es lo que lo hace tan peligroso: P. FragmentActivityhereda los métodos getLoaderManagery getFragmentManagerde Activityy, como resultado, el compilador no se quejará. Es probable que también esté importando las clases incorrectas LoaderManagery FragmentManager. Asegúrese de importar estas clases desde el paquete de soporte ( android.support.v4.app), no desde el SDK de Android ( android.app).
Alex Lockwood
1
¿Podemos decir que si queremos usar fragmentos para la versión de Android 2.x necesitamos usar FragmentActivity nad para la versión que admite fragmentos? Necesitamos usar Activity.
Novato
55
Creo que lo que estás diciendo es correcto. Pero solo para ser 100% claro ... úsalo Activitysi lo estás usando android.app.Fragment; Úselo FragmentActivitysi lo está utilizando android.support.v4.app.Fragment. Nunca adjunte a android.support.v4.app.Fragmenta a android.app.Activity, ya que esto provocará una excepción.
Alex Lockwood
13
Primero intente este tutorial (cómo usarlo Fragmentsen una aplicación). Luego, continúe con este tutorial (cómo utilizar los Fragments del paquete de soporte). También vale la pena leer la documentación en el sitio de desarrolladores.
Alex Lockwood
4

FragmentActivityes parte de la biblioteca de soporte , mientras que Activityes la clase predeterminada del marco. Son funcionalmente equivalentes.

Siempre debe usar FragmentActivityy en android.support.v4.app.Fragmentlugar de la plataforma predeterminada Activityy las android.app.Fragmentclases. El uso de los valores predeterminados de la plataforma significa que depende de cualquier implementación de fragmentos que se use en el dispositivo en el que se está ejecutando. A menudo tienen varios años y contienen errores que desde entonces se han corregido en la biblioteca de soporte.

Samuel Peter
fuente
1
Nota: la minSdkVersionbiblioteca de soporte es 14 desde la versión 26.xx
Eugen Pechanec