Lorsque vous utilisez l'assistant Android Studio pour créer un nouveau projet, il crée automatiquement le fichier res / layout / activity_main.xml (comme illustré dans la capture d'écran suivante). Il gonfle ensuite le fichier XML dans le rappel onCreate () avec setContentView (R.layout. Activity_main).
Pour cette recette, nous allons créer deux mises en page légèrement différentes et passer d'un bouton à l'autre.
Se préparer
Créez un nouveau projet dans Android Studio et appelez-le InflateLayout. Une fois le projet créé, développez le dossier res / layout pour pouvoir modifier le fichier activity_main.xml.
Comment faire...
1. Modifiez le fichier res / layout / activity_main.xml afin qu'il contienne un bouton
défini ici:
<Bouton
android: id = "@ + id / buttonLeft"
android: layout_width = "wrap_content"
android: layout_height = "wrap_content"
android: text = "Bouton gauche"
android: layout_centerVertical = "vrai"
android: layout_alignParentLeft = "vrai"
android: onClick = "onClickLeft" />
2. Faites maintenant une copie de activity_main.xml et appelez-la activity_main2.xml.
Changez le bouton pour qu'il corresponde aux éléments suivants:
<Bouton
android: id = "@ + id / buttonRight"
android: layout_width = "wrap_content"
android: layout_height = "wrap_content"
android: text = "Bouton droit"
android: layout_centerVertical = "vrai"
android: layout_alignParentRight = "vrai"
android: onClick = "onClickRight" />
3. Ouvrez MainActivity.java et ajoutez les deux méthodes suivantes pour gérer le
clics sur le bouton:
public void onClickLeft (Voir la vue) {
setContentView (R.layout.activity_main2);
}
public void onClickRight (Voir la vue) {
setContentView (R.layout.activity_main);
}
4. Exécutez cette application sur un périphérique ou un émulateur pour le voir en action.
Comment ça marche...
La clé ici est l'appel à setContentView (), que nous avons rencontré auparavant dans le code onCreate () autogénéré. Transmettez simplement un ID de mise en page à setContentView () et cela gonfle automatiquement la mise en page.
dzH
Ce code est destiné à rendre le concept facile à comprendre, mais serait excessif pour simplement changer la propriété d'un bouton (dans cet exemple, nous pourrions simplement changer l'alignement sur le bouton clic). L'initialisation de la mise en page est généralement nécessaire une seule fois, dans la méthode onCreate (), mais il arrive que vous souhaitiez gonfler manuellement une mise en page, comme nous l'avons fait ici. (Si vous manipulez manuellement les changements d'orientation, ce serait un bon exemple.)
Il y a plus...
En plus d'identifier une mise en page à l'aide d'un ID de ressource, comme nous l'avons fait ici, setContentView () peut également prendre une vue comme argument, par exemple:
findViewByld (R.id.myView)
setContentView (myView);
Voir également
► Comme mentionné précédemment, reportez-vous à la rubrique Fragment, au Chapitre 5, Exploration des fragments, AppWidgets et à l'interface utilisateur du système, pour la méthode alternative permettant de modifier la disposition de l'écran.