Advertisement
  1. Code
  2. Coding Fundamentals
  3. Tools

Android desde Cero: Activities y Fragmentos

Scroll to top
Read Time: 7 min
This post is part of a series called Android From Scratch.
Android From Scratch: Understanding Views and View Groups
Android From Scratch: Connecting Activities and Applications

() translation by (you can also view the original English article)

Cuando un usuario interactúa con una aplicación en un dispositivo Android, ellos están interactuando casi siempre con una Activity, concentrados en una sola pantalla en un dispositivo. Después de que Google publicará la versión Honeycomb de Android, los objetos Fragment fueron añadidos al sistema operativo para facilitar la re-utilización de código y cambiar el contenido en la pantalla sin tener que destruir/re-construir, cada vez, una nueva Activity.

En este tutorial, usted aprenderá más sobre los objetos Activity y Fragment en Android, sus ciclos de vida y cuando y cómo debería usarlos en sus propias aplicaciones.

1. Activities

Activities son una parte clave del ecosistema de Android y uno de los primeros conceptos que necesita comprender antes de familiarizarse más con el desarrollo en Android. Las Activities actúan como una sola pantalla que es mostrada al usuario y a menudo encapsulan mucha lógica de su programa.

Cuando usted tiene creada una clase Activity, ya sea; manualmente o a través de una de las plantillas de Android Studio, usted necesita definirla en el archivo del proyecto AndroidManifest.xml, si es que aún no estaba añadida, así:

1
<activity android:name=".MainActivity">
2
    <intent-filter>
3
        <action android:name="android.intent.action.MAIN" />
4
5
        <category android:name="android.intent.category.LAUNCHER" />
6
    </intent-filter>
7
</activity>

En el fragmento anterior, también observó una etiqueta intent-filter con un elemento action y un category. Si bien entrar en detalles sobre estos elementos está más allá del alcance de éste tutorial, al menos debería de saber que esas líneas adicionales son cómo el sistema sabe cual Activity abrir primero cuando el usuario selecciona su aplicación.

Una vez que usted ha creado una Activity, probablemente querrá asociarla con un archivo de formato XML para que pueda usar con facilidad objetos View desde la composición. Puede hacer esto en el método onCreate().

1
@Override
2
protected void onCreate(Bundle savedInstanceState) {
3
    super.onCreate(savedInstanceState);
4
    setContentView(R.layout.activity_main);
5
}

Después de llamar setContentView(), usted puede comenzar a hacer referencia a objetos View desde un archivo de formato XML.

Ciclo de Vida de un Activity

En este punto, probablemente se estará preguntando que es onCreate() y porqué estamos usándolo. El método onCreate() es uno de los métodos asociados con el ciclo de vida de Activity. Este es llamado cuando el Activity es creado de primero. Aquí es donde usted puede hacer algunas de sus pasos de inicialización dentro de su Activity como éste está garantizado para ser llamado primero en el ciclo de vida del Activity como puede ver a continuación.

Android Activity Life Cycle DiagramAndroid Activity Life Cycle DiagramAndroid Activity Life Cycle Diagram
Recurso: Sitio web Google Developer

El diagrama anterior muestra el orden de los métodos llamado según un Activity deja o introduce sus distintos condiciones posibles:

  • onCreate() es llamado inmediatamente cuando un Activitiy es, como el nombre lo índica, creado. onDestroy() tiene relación a la operación contraria y es llamado cuando el Activity es eliminado de la memoria del dispositivo. Hay algunas instancias pequeñas donde onDestroy() no puede ser llamado, sin embargo, eso está más allá del alcance de éste tutorial.
  • onStart() es llamado cuando un Activity está visible para el usuario y onStop() es llamado cuando ese Activity ya no está visible. Estos dos pueden ser activados cuando una aplicación está colocada dentro del fondo a través del uso del botón de inicio del dispositivo y cuando la aplicación devuelve el primer plano.
  • onResume() y onPause() están asociados con el Activity comenzando en el primer fondo. Si otro componente introduce el primer fondo, tal como un diálogo u otro Activity, entonces su porción del ciclo de vida es activado.

Comprender cuando cada uno de éstos métodos es llamado le evitará muchos dolores de cabeza cuando usted desarrolle y necesite hacer desaparecer/reasignar recursos dentro de sus aplicaciones.

Manejando los Cambios de Configuración

Ahora que sabe un poco sobre el ciclo de vida del Activity, es hora de investigar qué ocurre cuando un Activity es destruido y recreado por el sistema. Esto puede ocurrir en algunas situaciones, la más común cuando la pantalla es rotada.

El Activity va a través del proceso estándar de desmontaje de onStop(), onPause(), onDestroy() y entonces, onCreate() cuando una nueva instancia del Activity es creado.

Otro método que no se muestra en el diagrama anterior es onSaveInstanceState(). Este método es llamado como un Activity que está siendo destruido y le permite a usted guardar una información sencilla dentro del paquete. Cuando onCreate(), es llamado nuevamente, usted puede extraer esa información que usted guardo anteriormente. Lo mismo puede ser hecho desde el método onRestoreInstanceState().

2. Fragmentos

Presentado con Android 3.0 (Honeycomb), los objetos Fragment son una herramienta asombrosa que maneja múltiples situaciones que fueron problemáticas cuando sólo la clase Activity estaba disponible. Fragments permiten organizar los componentes de interfaz de usuario de un proyecto para diferentes dispositivos al darle la habilidad de mostrar múltiples segmentos de interfaz de usuarios en una pantalla grande, tal como una tableta, o para mostrar una a la vez y enlazarlas juntas en un dispositivo portátil más pequeño.

Además, ayudan a manejar el código en trozos manejables en vez de tener que depender de una clase Actvity compleja y más grande. Una de las últimas, y más valiosas, características es que fragments permiten la navegación fácil de una aplicación y proporcionan una manera simple de comunicarse a través de diferentes secciones de una aplicación. 

Ciclo de Vida

Tal como la clase Activity, la clase Fragment tiene su propio ciclo de vida que ayuda a manejar el Fragment desde el momento que éste es adjuntado a un Activity hasta que éste es destruido. Comprender el ciclo de vida ayuda a crear aplicaciones que son estables y, además, ayudan con su depuración.

Android Fragment Life Cycle DiagramAndroid Fragment Life Cycle DiagramAndroid Fragment Life Cycle Diagram
Recurso: Sitio web Google Developer
  • onAttach() y onDetach() indican cuando un fragment ha sido añadido a un Activity y el fragment es utilizable dentro de la aplicación.
  • onCreate() es llamado como un método inicializado para las clases Fragment y onDestroy() es un equivalente e a un des-inicializador.
  • onCreateView() es el método en el cual usted instancia una composición y los objetos View para el fragment. onDestroyView() es llamado cuando la vista jerárquica asociada con el fragment es eliminada.
  • onStart() y onStop() actúan de manera similar al ciclo de vida Activity de sus homólogos. Estos métodos son activados cuando Fragment se vuelve visible o cuando se detiene respectivamente.
  • onPause() y onStart(), también son similares a los Activity homólogos. Cuando un Fragment es visible, pero su foco ha cambiado, uno de estos dos métodos es invocado.

Subclases Fragment

Aunque la clase Fragment es poderosa en su propia forma, ésta no puede alcanzar su potencial completo sin ser extendida para servir al propósito de su aplicación. Por fortuna, Google ha proporcionado muchas clases diferentes menores de Fragment para ayudar a los desarrolladores a construir rápidamente aplicaciones estupendas.

En esta sección, quiero resaltar algunas de ellas para inspirarle a construir sus estupendas clases Fragment. Es importante saber que estos fragmentos integrados están disponibles para usted, de modo que no tiene que reinventar la rueda.

ListFragment

Este Fragment tiene incorporado un ListView y algunos métodos útiles para hacer resaltar sus componentes, tales como una ProgressBar indefinida (un complemento circular de carga que está girando)  y un TextView para mostrar texto cuando la List esté vacía.

MapFragment

Este es un Fragment invaluable que envuelve un MapView para usar con los servicios de Google Map. En lugar de tener que escribir todo su código personal, usted puede incluir este Fragment para conseguir la funcionalidad base del mapa dentro de su aplicación.

BrowseFragment y DetailsFragment

Estas dos clases Fragment están disponibles como un parte de Android TV LeanBack Support Library y controlan las consideraciones de la interfaz de usuario y la funcionalidad básica para desarrollar aplicaciones para un dispositivo de televisión.

En Conclusión

Aunque este tutorial solamente ha tocado la superficie sobre cómo funcionan las clases Activity y Fragment, ahora debería saber que son componentes claves para construir la interfaz de usuario de sus aplicaciones. Se le ha presentado el ciclo de vida de los activities y los objetos fragment y hemos visto algunas subclases Fragment que, convenientemente, pueden ayudar a construir aplicaciones asombrosas.

A medida que usted continúe trabajando con Android, usted entenderá y aprenderá sobre muchas clases Activity y Fragment que están disponibles para usted y, sin duda, usted construirá sus propias clases.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.