Premier type d'intention: le routage en interne
Le routage en interne ou encore appelé intention explicite: Il s'agit d'appeler des activités internes à l'application.
Vous ne ferait
jamais d'appel explicite en dehors de votre application, car rien ne dit que
l'autre application (ayant la dite activité) soit bien installée
sur l'appareil !
Intention explicite
Jusqu'à présent, vous n'aviez qu'un écran à lancer. Mais une application avec un seul écran, c'est plutôt rare, surtout sur des portables !
Pour créer un second, puis un troisième, puis n écrans, il faudra effectuer les manipulations suivantes:
- D'abord définir le layout du nouvel écran. Dans File/new/other/android/android XML Layout File.
- Puis créer une nouvelle classe d'activité pour le nouvel écran.
Dans le menu fichier/new/class
Avec la méthode qui contiendra le setContentView pointant sur votre nouveau layout.xml créé précédemment:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.autre_class_activity);
}
Puis définir cette nouvelle activité dans le fichier ManifestAndroid.xml de l'application:
android:name doit avoir le nom de la nouvelle classe.
Les filtres d'intentions pourront ressembler à ceci:
Action de type VIEW, dans le cas où vous voulez visualiser votre nouvelle ressource
Catégorie: Défaut.
Il ne reste plus qu'à instancier une intention.
La classe Intent est là pour cela:
Intent(contexte d'utilisation (l'instance de la classe Activity en cours), AutreClasseActivity.class);
et enfin, lancer l'activité de la nouvelle classe...
startActivity(intent);
Exemple de code d'appel explicite
En reprenant le code exemple du bouton avec son listener. Ce bouton lancera cette fois-ci une seconde activité qui affichera simplement une horloge.
D'abord le code pour le premier écran
Avec son fichier main_activity.xml
Rien d'exceptionel, que du déjà vu !
et sa classe MainActivity.java. Presque rien d'exceptionel, hormis l'ajout du code dans le listener du bouton permettant de lancer la seconde activité:
Le fichier activiy_aff_horloge.xml
La seconde activité qui va utiliser le nouveau fichier XML
Et enfin, le fichier manifest: