import android.app.Activity;
public class HelloWorld extends Activity
{
}
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 }
•
•
•
•
•
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Intent intent = new Intent (Activité_départ.this, Activité_destination.class);
Intent intent = new Intent (Action, Données);
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) :
Intent myActivityIntent = new Intent (<action>, <donnée>) ;
startActivity (myActivityIntent) ;
ACTION_VIEW, ACTION_DIAL, ACTION_MAIN, ...
"Nom_du_package.intent.action.NOM_DE_L_ACTION"
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>
Bundle onCreate(Bundle)
onSaveInstanceState(Bundle)
onCreate(Bundle)
onRestoreInstanceState(Bundle)
onStart()
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)); }
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>

Chapitre 3 activites et intents

  • 3.
    import android.app.Activity; public classHelloWorld extends Activity { }
  • 6.
  • 7.
    1 import android.app.Activity; 2import 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 }
  • 10.
  • 11.
  • 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 (Stringclé) getStringExtra getIntExtra getFloatExtra float[] getFloatArrayExtra (String clé)
  • 20.
    private final StringEXTRA_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(intrequestCode, 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 ladonné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>
  • 26.
  • 27.
    <activity> <intent-filter> <action android:name="android.intent.action.VIEW" /> <actionandroid:name="android.intent.action.SENDTO" /> </intent-filter> </activity>
  • 31.
  • 34.
    public final staticString 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. publicObject 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>