Cycle de vie d'activité Android et les composant d'Android

Click here to load reader

  • date post

    05-Jul-2015
  • Category

    Mobile

  • view

    419
  • download

    0

Embed Size (px)

description

Chapitre expliquant le cycle de vie d'une activité Android avec une application pour les différentes méthodes formant le cycle de vie de l'Activity. Il contient aussi quelques exercices sure les composants Android comme les boites de dialogues(AlertDialog) et les case à cocher (RadioButton).

Transcript of Cycle de vie d'activité Android et les composant d'Android

  • 1. M.Houssem LAHIANI1Cours de programmation sous AndroidResponsable de matire : Monsieur Houssem Lahiani.Chapitre 5 : Les activits et les composants sous AndroidPlan du chapitreCours de programmation sous Android .............................................................................................................................. 1Chapitre 5 : Les activits et les composants sous Android ................................................................................................ 2I. Les activits .................................................................................................................................................................. 2II. Les composants Android ......................................................................................................................................... 51. Boutons radios et cases cocher ................................................................................................................................. 52. Les Alertes .................................................................................................................................................................... 7

2. M.Houssem LAHIANI2Chapitre 5 : Les activits et les composants sous AndroidI. Les activitsFaisons un peu de thorie. Une activit reprsente en gros ce que l'on voit l'cran, pour la dfinir simplement, elle est gnralement compose d'une classe, et d'un layout xml.Une activit est la composante principale pour une application Android. Elle reprsente limplmentation mtier dans une application Android, permettant de grer lensemble des vues et ressources.Une activit peut tre avec ou sans interface utilisateur. Il est possible davoir plusieurs activits dans le mme programme. Elle doit toujours tre dclare dans le fichier AndroidManifest.xml.Une activit nest pas linaire, elle est soumise plusieurs vnements. Chaque vnement est reprsent dans une mthode. La figure suivante illustre le cycle de vie dune application Android : 3. M.Houssem LAHIANI3onCreate() : Cette mthode est appele la cration dune activit. Elle permet de linitialiser. Cest ici que linterface graphique est spcifie. onStart() : Cette mthode est appele quand lapplication est dmarre. onResume() : Cette mthode est appele quand lapplication passe (ou repasse) en avant-plan. onPause() : Appele quand lapplication passe en arrire-plan et quune autre application se met devant. onStop() : Appele quand lapplication nest plus visible. onRestart() : Appele quand lapplication redevient visible. onDestroy() : Appele quand votre application est ferme par le systme cause dun manque de ressources, ou par lutilisateur lutilisation dun finish().Il est donc permis de spcifier un comportement pour chacun de ces vnements. Pour cela, il suffit de rajouter les mthodes correspondantes (de la mme manire que pour la mthode onCreate) dj gnre par ADT.Pour gnrer ces mthodes, commencer taper le nom de la mthode dans le fichier de code, puis taper sur les touches CtrlEspace.Cliquer sur la mthode qui vous est propose. Son code sera automatiquement gnr.Exercice1. Gnrer les mthodes correspondant chacun des vnements lists dans le cycle de vie.2. Nous dsirons voir le comportement de lactivit pour chacun de ces vnements. Pour cela, chaque mthode va afficher son nom.Indication : Utiliser le code suivant pour laffichage :Toast helloToast = Toast.makeText(this, "message afficher", Toast.LENGTH_LONG);helloToast.setGravity(Gravity.CENTER, 0, 0);helloToast.show();3. Dans la mthode onCreate, commenter la lignesetContentView(R.layout.main);et la remplacer par :TextView tv = new TextView(this);tv.setText("Hello, Android");setContentView(tv);que constatezvous ?public class HelloworldActivity extends Activity {private Button bAfficher;private EditText edit;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Toast helloToast = Toast.makeText(this, "onCreate",Toast.LENGTH_SHORT);helloToast.setGravity(Gravity.CENTER, 0, 0); 4. M.Houssem LAHIANI4helloToast.show();// Affectation des elements graphiques aux attributsthis.bAfficher = (Button) this.findViewById(R.id.boutonAfficher);this.edit = (EditText) this.findViewById(R.id.edit);// Comportement du bouton bAfficherthis.bAfficher.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// afficher un messageToast helloToast = Toast.makeText(HelloworldActivity.this,"J'ai t cliquer!", Toast.LENGTH_SHORT);helloToast.setGravity(Gravity.CENTER, 0, 0);helloToast.show();Toast.makeText(HelloworldActivity.this, "Clic", 1000).show();}});}public void passerActivite(View v) {// lancer la nouvelle activitIntent myIntent = new Intent(HelloworldActivity.this,ClicActivity.class);myIntent.putExtra("chaine", edit.getText().toString());startActivity(myIntent);}@Overrideprotected void onStart() {super.onStart();Toast helloToast = Toast.makeText(this, "onStart",Toast.LENGTH_SHORT);helloToast.setGravity(Gravity.CENTER, 0, 0);helloToast.show();}@Overrideprotected void onResume() {super.onResume();Toast helloToast = Toast.makeText(this, "onResume",Toast.LENGTH_SHORT);helloToast.setGravity(Gravity.CENTER, 0, 0);helloToast.show();}@Overrideprotected void onPause() {super.onPause();Toast helloToast = Toast.makeText(this, "onPause",Toast.LENGTH_SHORT);helloToast.setGravity(Gravity.CENTER, 0, 0);helloToast.show();}@Overrideprotected void onRestart() {super.onRestart();Toast helloToast = Toast.makeText(this, "onRestart",Toast.LENGTH_SHORT);helloToast.setGravity(Gravity.CENTER, 0, 0);helloToast.show();}@Overrideprotected void onStop() {super.onStop();Toast helloToast = Toast.makeText(this, "onStop",Toast.LENGTH_SHORT);helloToast.setGravity(Gravity.CENTER, 0, 0);helloToast.show();} 5. M.Houssem [email protected] void onDestroy() {super.onDestroy();Toast helloToast = Toast.makeText(this, "onDestroy",Toast.LENGTH_SHORT);helloToast.setGravity(Gravity.CENTER, 0, 0);helloToast.show();}II. Les composants Android1. Boutons radios et cases cocherEn Android, vous pouvez utiliser la classe "android.widget.RadioButton" pour utiliser les boutons radio qui sont gnralement regroups par android.widget.RadioGroup. Si les boutons radios sont dans un groupe,si un RadioButton est slectionne tous les autres seront automatiquement dslectionns. Dans cette partie, nous allons vous montrer comment utiliser le XML pour crer deux boutons radio et les regroups au sein d'un groupe de radio.ExerciceCrer un nouveau projet portant le nom de Radio .Dans le ficher strings.xml mettez les lignes suivantes :Hello World, MyAndroidAppActivity!MyAndroidAppMaleFemaleSettingsDisplayDans le fichier (Layout) main.xml essayez de crer cette interface en utilisant un RadioGroup dans un linearLayout.Dans votre code Java, essayez dafficher dans un toast le mot qui se trouve dans la case coche aprs avoir cliquer sur le bouton Display. 6. M.Houssem LAHIANI6Pour rendre un bouton radio slectionn par dfaut, mettez android: checked = "true" dans l'lment RadioButton. Dans ce cas, la radio option "Male" est slectionn par dfaut.import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.Toast;public class MyAndroidAppActivity extends Activity {private RadioGroup radioSexGroup;private RadioButton radioSexButton;private Button btnDisplay;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); 7. M.Houssem LAHIANI7setContentView(R.layout.main);addListenerOnButton();}public void addListenerOnButton() {radioSexGroup = (RadioGroup) findViewById(R.id.radioSex);btnDisplay = (Button) findViewById(R.id.btnDisplay);btnDisplay.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// get selected radio button from radioGroupint selectedId = radioSexGroup.getCheckedRadioButtonId();// find the radiobutton by returned idradioSexButton = (RadioButton) findViewById(selectedId);Toast.makeText(MyAndroidAppActivity.this,radioSexButton.getText(),Toast.LENGTH_SHORT).show();}});}}2. Les AlertesSi vous prfrez utiliser le style plus classique des botes de dialogue, choisissez plutt AlertDialog. Comme toute bote de dialogue modale, un AlertDialog souvre, prend le focus et reste affich tant que lutilisateur ne le ferme pas. Ce type daffichage convient donc bien aux erreurs critiques, aux messages de validation qui ne peuvent pas tre affichs correctement dans linterface de base de lactivit ou toute autre information dont vous voulez vous assurer la lecture immdiate par lutilisateur.Pour crer un AlertDialog, le moyen le plus simple consiste utiliser la classe Builder, qui offre un ensemble de mthodes permettant de configurer un AlertDialog. Chacune de ces mthodes renvoie le Builder afin de faciliter le chanage des appels. la fin, il suffit dappeler la mthode show() de lobjet Builder pour afficher la bote de dialogue.Voici les mthodes de configuration de Builder les plus utilises : setMessage() permet de dfinir le "corps" de la bote de dialogue partir dun simple message de texte. Son paramtre est un objet String ou un identifiant dune ressource textuelle. setTitle() et setIcon() permettent de configurer le texte et/ou licne qui apparatra dans la barre de titre de la bote de dialogue. setPositiveButton(), setNeutralButton() et setNegativeButton() permettent dindiquer les boutons qui apparatront en bas de la bote de dialogue, leur emplacement latral 8. M.Houssem LAHIANI8(respectivement, gauche, au centre ou droite), leur texte et le code qui sera appel lorsquon clique sur un bouton (en plus de refermer la bote de dialogue).Si vous devez faire dautres configurations que celles proposes par Builder, appelez la mthode create() la place de show() : vous obtiendrez ainsi une instance dA