SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Chapitre 3   activites et  intents
Chapitre 3   activites et  intents
import android.app.Activity;
public class HelloWorld extends Activity
{
}
Chapitre 3   activites et  intents
Chapitre 3   activites et  intents
onCreate()
onStart()
onResume()
onPause()
onStop()
onDestroy()
1 import android.app.Activity;
2 import android.os.Bundle;
3 import android.widget.TextView;
4 public class HelloWorld extends Activity
5 {
6 /** Appelée à la creation de l’activité. */
7 @Override
8 protected void onCreate(Bundle icicle)
9 {
10 super.onCreate(icicle);
11 /** remarquez ici on n’utilise pas de layout XML */
12 TextView textView = new TextView(this);
13 textView.setText("Hello world !");
14 setContentView(textView);
15 }
16 @Override
17 protected void onStart()
18 {
19 super.onStart();
20 Toast.makeText(this, "appel de la méthode
onStart()", 1).show();
21 }
22 protected void onResume()
23 {
24 super.onResume();
25 Toast.makeText(this, "appel de la méthode
onRestart()", 1).show();
26 }
27
28 ...
29
30 }
Chapitre 3   activites et  intents
Chapitre 3   activites et  intents
•
•
•
•
•
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Chapitre 3   activites et  intents
Chapitre 3   activites et  intents
Intent intent = new Intent (Activité_départ.this, Activité_destination.class);
Intent intent = new Intent (Action, Données);
Chapitre 3   activites et  intents
public void startActivity (Intent intent)
Intent intent = new Intent (A.this, B.class);
startActivity(intent);
public void startActivityForResult (Intent intent, int requestCode)
requestCode
Intent putExtra(String clé, valeur)
private final String EXTRA_LOGIN = "login" ; // clé1/default
private final String EXTRA_PASSWORD = "password" ; // clé2/default
………………
Intent intent = new Intent (MainActivity.this, SecondeAvtivity.class);
intent.putExtra(Extra_LOGIN, login.getText().toString()); //valeur récupérée de l’IHM
intent.putExtra(EXTRA_PASSWORD, password.getText().toString());
startActivity(intent); //intent contient deux valeurs en Extra
getIntent()
X get{X}Extra (String clé) getStringExtra getIntExtra
getFloatExtra
float[] getFloatArrayExtra (String clé)
private final String EXTRA_LOGIN = "login" ; //nouvelle déclaration des clés
private final String EXTRA_PASSWORD = "password" ;
………………
Intent intent = getIntent();
String logintxt = intent.getStringExtra(Extra_LOGIN);
String passwordtxt = intent.getStringExtra(Extra_PASSWORD);
//Traiter les données login et mot de passe récupéré de l’activité précédente
…………………
public static final private final
<activity android:name=".SecondeActivity" > </activity>
startActivityForResult(Intent, int)
Intent
int startActivity
onActivityResult(int requestCode, int resultCode, Intent data)
requestCode startActivityForResult
resultCode RESULT_CANCELED RESULT_OK
data:
startActivityForResult
void setResult (int resultCode) :
void setResult (int resultCode, Intent data) :
Chapitre 3   activites et  intents
Intent myActivityIntent = new Intent (<action>, <donnée>) ;
startActivity (myActivityIntent) ;
ACTION_VIEW, ACTION_DIAL, ACTION_MAIN, ...
"Nom_du_package.intent.action.NOM_DE_L_ACTION"
Chapitre 3   activites et  intents
1 /*Préparer la donnée de l’Intent Implicite : il s’agit d’un objet URI */
2 Uri telephone = Uri.parse("tel:71111222");
3 /*Créer un Intent Implicite avec l’action ACTION_DIAL et la donnée à traiter par l’action */
4 Intent intent = new Intent (Intent.ACTION_DIAL, telephone);
5 /*Démarrer une activité (inconnue), Android intercepte l’appel et fera le nécessaire */
6 startActivity (intent);
<activity>
<intent-filter>
<action android:name="android.intent.action.ACTION_DIAL" />
</intent-filter>
</activity>
ACTION_MAIN
ACTION_DIAL
ACTION_SEARCH
ACTION_SENDTO
ACTION_VIEW
ACTION_WEB_SEARCH
<activity>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.SENDTO" />
</intent-filter>
</activity>
Chapitre 3   activites et  intents
Chapitre 3   activites et  intents
Chapitre 3   activites et  intents
Bundle onCreate(Bundle)
onSaveInstanceState(Bundle)
onCreate(Bundle)
onRestoreInstanceState(Bundle)
onStart()
Chapitre 3   activites et  intents
Chapitre 3   activites et  intents
public final static String CALCUL = "0"; //clé de la valeur à sauvegarder
1. @Override
2. protected void onSaveInstanceState(Bundle outState) {
3. super.onSaveInstanceState(outState);
4. int a = Integer.valueOf(Label.getText().toString());
5. //utiliser la méthode putXXX(clé, valeur) du Bundle pour la sauvegarde
6. outState.putInt(CALCUL,a); }
1. @Override
2. protected void onRestoreInstanceState(Bundle savedInstanceState) {
3. super.onRestoreInstanceState(savedInstanceState);
4. //utiliser la méthode getXXX(clé) du Bundle pour la récupération
5. int sauvegarde = savedInstanceState.getInt(CALCUL);
6. Label.setText(String.valueOf(sauvegarde)); }
Chapitre 3   activites et  intents
public Object onRetainNonConfigurationInstance()
onStop() onDestroy()
onRetainNonConfigurationInstance()
onCreate getLastNonConfigurationInstance()
1. @Override
2. public Object onRetainNonConfigurationInstance(){
3. //la classe « DonneesConservees » permet de contenir tous les objets voulus et la méthode
« constituerDonnees » va construire l’objet selon l’instance voulus par l’instance de
l’activité
4. DonneesConservees data = construireDonnees ();
5. return data;
6. }
1. @Override
2. protected void onCreate (Bundle savedInstanceState) {
3. ...
4. //Récupération de l’objet de type « DonneesConservees »
5. DonneesConservees data = (DonneesConservees) getLastNonConfigurationInstance();
6. //S’il n’y a pas de retour depuis un changement de configuration, alors data est null
7. if (data == null) { ... }
8. }
android:screenOrientation = "portrait"
android:screenOrientation = "landscape"
android:configChanges = "orientation"
<activity
android:name= ".MainActivity"
...
android:configChanges= "orientation"
android:screenOrientation= "portrait"
>
</activity>

Contenu connexe

Plus de Amir Souissi

Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsAmir Souissi
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptionsAmir Souissi
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de javaAmir Souissi
 
Chapitre 4 persistance des donnees
Chapitre 4  persistance des donneesChapitre 4  persistance des donnees
Chapitre 4 persistance des donneesAmir Souissi
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objetAmir Souissi
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generaleAmir Souissi
 
Chapitre 1 decouverte du developpement android
Chapitre 1  decouverte du developpement androidChapitre 1  decouverte du developpement android
Chapitre 1 decouverte du developpement androidAmir Souissi
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3Amir Souissi
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2Amir Souissi
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1Amir Souissi
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classeAmir Souissi
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisationAmir Souissi
 

Plus de Amir Souissi (20)

Chap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitionsChap5 diagramme d'etats-transitions
Chap5 diagramme d'etats-transitions
 
Chapitre 6 traitement des exceptions
Chapitre 6  traitement des exceptionsChapitre 6  traitement des exceptions
Chapitre 6 traitement des exceptions
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Chapitre 4 persistance des donnees
Chapitre 4  persistance des donneesChapitre 4  persistance des donnees
Chapitre 4 persistance des donnees
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
Chapitre 1 introduction generale
Chapitre 1   introduction generaleChapitre 1   introduction generale
Chapitre 1 introduction generale
 
Chapitre 1 decouverte du developpement android
Chapitre 1  decouverte du developpement androidChapitre 1  decouverte du developpement android
Chapitre 1 decouverte du developpement android
 
Atelier symfony n 3
Atelier symfony n 3Atelier symfony n 3
Atelier symfony n 3
 
Atelier symfony n 2
Atelier symfony n 2Atelier symfony n 2
Atelier symfony n 2
 
Atelier symfony n 1
Atelier symfony n 1Atelier symfony n 1
Atelier symfony n 1
 
Tp n 6 linux
Tp n 6 linuxTp n 6 linux
Tp n 6 linux
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
Tp n 4 linux
Tp n 4 linuxTp n 4 linux
Tp n 4 linux
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
Tp n 1 linux
Tp n 1 linuxTp n 1 linux
Tp n 1 linux
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
diagramme de classe
diagramme de classediagramme de classe
diagramme de classe
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 

Dernier

La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniquessuser4dbdf2
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFEAhmam Abderrahmane
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024frizzole
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxMartin M Flynn
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementM2i Formation
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2JeanLucHusson
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionslaetitiachassagne
 

Dernier (7)

La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin technique
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFE
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptx
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changement
 
Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositions
 

Chapitre 3 activites et intents

  • 3. import android.app.Activity; public class HelloWorld extends Activity { }
  • 7. 1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.widget.TextView; 4 public class HelloWorld extends Activity 5 { 6 /** Appelée à la creation de l’activité. */ 7 @Override 8 protected void onCreate(Bundle icicle) 9 { 10 super.onCreate(icicle); 11 /** remarquez ici on n’utilise pas de layout XML */ 12 TextView textView = new TextView(this); 13 textView.setText("Hello world !"); 14 setContentView(textView); 15 } 16 @Override 17 protected void onStart() 18 { 19 super.onStart(); 20 Toast.makeText(this, "appel de la méthode onStart()", 1).show(); 21 } 22 protected void onResume() 23 { 24 super.onResume(); 25 Toast.makeText(this, "appel de la méthode onRestart()", 1).show(); 26 } 27 28 ... 29 30 }
  • 12. <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
  • 15. Intent intent = new Intent (Activité_départ.this, Activité_destination.class); Intent intent = new Intent (Action, Données);
  • 17. public void startActivity (Intent intent) Intent intent = new Intent (A.this, B.class); startActivity(intent); public void startActivityForResult (Intent intent, int requestCode) requestCode
  • 18. Intent putExtra(String clé, valeur) private final String EXTRA_LOGIN = "login" ; // clé1/default private final String EXTRA_PASSWORD = "password" ; // clé2/default ……………… Intent intent = new Intent (MainActivity.this, SecondeAvtivity.class); intent.putExtra(Extra_LOGIN, login.getText().toString()); //valeur récupérée de l’IHM intent.putExtra(EXTRA_PASSWORD, password.getText().toString()); startActivity(intent); //intent contient deux valeurs en Extra
  • 19. getIntent() X get{X}Extra (String clé) getStringExtra getIntExtra getFloatExtra float[] getFloatArrayExtra (String clé)
  • 20. private final String EXTRA_LOGIN = "login" ; //nouvelle déclaration des clés private final String EXTRA_PASSWORD = "password" ; ……………… Intent intent = getIntent(); String logintxt = intent.getStringExtra(Extra_LOGIN); String passwordtxt = intent.getStringExtra(Extra_PASSWORD); //Traiter les données login et mot de passe récupéré de l’activité précédente ………………… public static final private final <activity android:name=".SecondeActivity" > </activity>
  • 21. startActivityForResult(Intent, int) Intent int startActivity onActivityResult(int requestCode, int resultCode, Intent data) requestCode startActivityForResult resultCode RESULT_CANCELED RESULT_OK data: startActivityForResult void setResult (int resultCode) : void setResult (int resultCode, Intent data) :
  • 23. Intent myActivityIntent = new Intent (<action>, <donnée>) ; startActivity (myActivityIntent) ; ACTION_VIEW, ACTION_DIAL, ACTION_MAIN, ... "Nom_du_package.intent.action.NOM_DE_L_ACTION"
  • 25. 1 /*Préparer la donnée de l’Intent Implicite : il s’agit d’un objet URI */ 2 Uri telephone = Uri.parse("tel:71111222"); 3 /*Créer un Intent Implicite avec l’action ACTION_DIAL et la donnée à traiter par l’action */ 4 Intent intent = new Intent (Intent.ACTION_DIAL, telephone); 5 /*Démarrer une activité (inconnue), Android intercepte l’appel et fera le nécessaire */ 6 startActivity (intent); <activity> <intent-filter> <action android:name="android.intent.action.ACTION_DIAL" /> </intent-filter> </activity>
  • 27. <activity> <intent-filter> <action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.SENDTO" /> </intent-filter> </activity>
  • 34. public final static String CALCUL = "0"; //clé de la valeur à sauvegarder 1. @Override 2. protected void onSaveInstanceState(Bundle outState) { 3. super.onSaveInstanceState(outState); 4. int a = Integer.valueOf(Label.getText().toString()); 5. //utiliser la méthode putXXX(clé, valeur) du Bundle pour la sauvegarde 6. outState.putInt(CALCUL,a); } 1. @Override 2. protected void onRestoreInstanceState(Bundle savedInstanceState) { 3. super.onRestoreInstanceState(savedInstanceState); 4. //utiliser la méthode getXXX(clé) du Bundle pour la récupération 5. int sauvegarde = savedInstanceState.getInt(CALCUL); 6. Label.setText(String.valueOf(sauvegarde)); }
  • 36. public Object onRetainNonConfigurationInstance() onStop() onDestroy() onRetainNonConfigurationInstance() onCreate getLastNonConfigurationInstance()
  • 37. 1. @Override 2. public Object onRetainNonConfigurationInstance(){ 3. //la classe « DonneesConservees » permet de contenir tous les objets voulus et la méthode « constituerDonnees » va construire l’objet selon l’instance voulus par l’instance de l’activité 4. DonneesConservees data = construireDonnees (); 5. return data; 6. } 1. @Override 2. protected void onCreate (Bundle savedInstanceState) { 3. ... 4. //Récupération de l’objet de type « DonneesConservees » 5. DonneesConservees data = (DonneesConservees) getLastNonConfigurationInstance(); 6. //S’il n’y a pas de retour depuis un changement de configuration, alors data est null 7. if (data == null) { ... } 8. }
  • 38. android:screenOrientation = "portrait" android:screenOrientation = "landscape" android:configChanges = "orientation" <activity android:name= ".MainActivity" ... android:configChanges= "orientation" android:screenOrientation= "portrait" > </activity>