Activity

 

Présentation d'une activité

Il existe une activité pour tous les écrans de votre application. L'activité pourra occuper la totalité de l'écran ou partiellement, ou être dans une dialogue. Elle pourra être lancée depuis votre application mais aussi par n'importe quelle autre application (Voir exemple pour déclencher l'activité "téléphoner" qui provient d'une application tiers et non de votre application).

En fait, une activité ne se limite pas à un écran, il s'agit plus d'une portion de code capable de fonctionner de manière totalement indépendante.

Chacune des activités devra être déclarée dans le fichier AndroidManifest.xml pour pouvoir être utilisée.

Votre application doit démarrer sur une activité qui sera identifiée dans le fichier androidManifest.xml.

<activity android:name=".MonActivite" android:label="@string/app_name">

<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>

</activity>

Une activité se traduit par une classe JAVA portant le nom que l'on retrouve sous android:name. Si le fichier AndroidManifest.xml fait référence à une activité dont le code JAVA n'existe pas, vous obtiendrez une erreur durant l'exécution et aucune méthode du cycle de vie de l'activité ne sera lancée (cf. ci-dessous le cycle de vie d'une activité).

Les balises intent-filter vont permettre de construire l'enchainement entre les différentes activitées.

 

Cycle de vie

Les explications sur le cycle de vie sont données dans le chapitre Cycle de vie d'une activité.

Les principales méthodes qui seront généralement utilisées seront:

onCreate(), onResume() et onPause.

Toutes les méthodes du cycle de vie d'une activité pourront être précédées de l'annotation @overide, car vous ne pourrez que les redéfinir (et donc trouver obligatoirement un appel à 'super' dans la méthode pour déclencher la méthode de la classe parente), en aucun cas les surcharger.

 

Création d'une activité

Pour créer une classe comme activité, il faut étendre la classe Activity.

Votre code se composera au minimum de :

Evidemment, cela ne donnera pas grand chose à l'écran. Donc l'étape suivante sera de définir le contenu de l'activité.

L'interface d'une activité est créée dans une vue (View). Vous retrouverez donc dans une vue: les boutons, radio-set et les données qui seront présentées à l'utilisateur.

Pour assigner une vue à votre activité, vous devrez utiliser setContentView. Cette assignation sera faite dans le onCreate de l'activité après le super onCreate (et avec certainement d'autres commandes...).

 

Mettre fin à une activité

Il est possible de terminer une activité. Vous utiliserons pour cela la méthode finish(). Ce qui déclenchera la méthode onDestroy().

 

Les différentes classes d'activité

Il existe différentes sous classes d'Activity, qui permettent de traiter des cas particuliers:

MapActivity permet de supporter le widget MapView dans une activité.

ListActivity utilisée avec une ListView

ExpandableListActivity identique à ListActivity mais ExpandableListView

ActivityGroup qui permet de regrouper plusieurs activités au sein d'un même écran.

 

Fragment

Les fragments sont apparus sous Android 3.0 et sont à voir comme des micros activités, le regroupement de ses fragments forment une activité. la raison des fragments est liée aux différentes tailles des écrans, surtout entre les portables et les tablettes. Il est en effet possible d'afficher plus de choses sur ces dernieres. On peut alors se retrouver avec l'affichage différentes vues de données n'ayant pas forcement de rapport direct entre elles. Un fragment permet de traiter une vue précise et les framents vont permettre de gérer ses vues de manières indépendantes, ce qui sera fort intéressant justement avec les différentes tailles d'écrans (voire les orientations de l'écran: portrait/paysage) permettant ou non d'afficher ses différentes vues.

 

Lancer des activités

Ce rôle est dévoué à Android via vos demandes d'intentions et les filtres d'intentions.