09.02.2017 Views

creez-des-applications-pour-android

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.1 Préambule : quelques concepts avancés<br />

}<br />

// Et la méthode "constituerDonnees" va construire un objet<br />

// En fonction de ce que devra savoir la nouvelle instance de l'activité<br />

DonneesConservees data = constituerDonnees();<br />

return data;<br />

Enfin, il est possible de récupérer cet objet dans le onCreate(Bundle) à l’aide de la méthode<br />

public Object getLastNonConfigurationInstance() :<br />

@Override<br />

public void onCreate(Bundle savedInstanceState) {<br />

super.onCreate(savedInstanceState);<br />

setContentView(R.layout.main);<br />

}<br />

DonneesConservees data = (DonneesConservees) getLastNonConfigurationInstance();<br />

// S'il ne s'agit pas d'un retour depuis un changement de configuration, alors data e<br />

if(data == null)<br />

…<br />

4.1.5.0.2 Empêcher le changement de ressources De toute façon, il arrive parfois qu’une<br />

application n’ait de sens que dans une orientation. Pour lire un livre, il vaut mieux rester toujours<br />

en orientation portrait par exemple, de même il est plus agréable de regarder un film en mode paysage.<br />

L’idée ici est donc de conserver <strong>des</strong> fichiers de ressources spécifiques à une configuration,<br />

même si celle du terminal change en cours d’utilisation.<br />

Pour ce faire, c’est très simple, il suffit de rajouter dans le nœud <strong>des</strong> composants concernés<br />

les lignes <strong>android</strong>:screenOrientation = "portrait" <strong>pour</strong> bloquer en mode portrait ou<br />

<strong>android</strong>:screenOrientation = "landscape" <strong>pour</strong> bloquer en mode paysage. Bon, le problème,<br />

c’est qu’Android va quand même détruire l’activité <strong>pour</strong> la recréer si on laisse ça comme<br />

ça, c’est <strong>pour</strong>quoi on va lui dire qu’on gère nous-mêmes les changements d’orientation en<br />

ajoutant la ligne <strong>android</strong>:configChanges="orientation" dans les nœuds concernés :<br />

“‘xml hl_lines=“17-18”<br />

<br />

<br />

<br />

“‘<br />

Voilà, maintenant vous aurez beau tourner le terminal dans tous les sens, l’application restera<br />

toujours orientée de la même manière.<br />

— Le fichier Manifest est indispensable à tous les projets Android. C’est lui qui déclarera toute<br />

une série d’informations sur votre application.<br />

— Le nœud listera les différents composants de votre application ainsi que<br />

les services qu’ils offrent.<br />

251

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!