Vidéo: Mohamed Youssfi Developpement Mobile Android Preferences Interaction avec le serveur HTTP JSON 2025
Pour démarrer une activité dans une application Android, vous n'appelez pas de méthode. Au lieu de cela, vous lancez une intention. Jusqu'ici tout va bien. Mais quelle caractéristique d'une intention prend la place de la valeur de retour d'un appel de méthode? Dans le code suivant, une activité demande un résultat.
package com. allmycode. résultats; importer Android. app. Activité; importer Android. contenu. Intention; importer Android. os. Paquet; importer Android. vue. Vue; importer Android. widget. Affichage; classe publique GetResultActivity extends Activity {final int MY_REQUEST_CODE = 42; TextView textView; @Override public void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R disposition.principale); textView = (TextView) findViewById (R. id.textView);} public void onButtonClick (Voir v) {Intention intention = new Intent (); intention. setClassName ("com.allemycode.résultats", "com.allmycode.résultats.DonnResultActivity"); startActivityForResult (intention, MY_REQUEST_CODE);} @Ouverture d'un void protégé onActivityResult (int requestCode, int resultCode, intention d'intention) {if (requestCode == MY_REQUEST_CODE && resultCode == RESULT_OK) {textView. setText (intention.getStringExtra ("texte"));}}}
Dans le code que vous voyez ci-dessous, une activité fournit un résultat
package com. allmycode. résultats; importer Android. app. Activité; importer Android. contenu. Intention; importer Android. os. Paquet; importer Android. vue. Vue; importer Android. widget. Éditer le texte; Classe publique GiveResultActivity extends Activity {EditText editText; @Override public void onCreate (état de l'ensemble) {super. onCréer (état); setContentView (R disposition.giver); editText = (EditText) findViewById (ID R. editText);} public void onButtonClick (Voir arg0) {Intention intention = new Intent (); intention. putExtra ("texte", editText. getText (). toString ()); setResult (RESULT_OK, intention); finish ();}}
Les actions du code ci-dessus se déroulent en trois étapes. Tout d'abord, l'utilisateur voit GetResultActivity.
Lorsque l'utilisateur clique sur le bouton Obtenir un résultat, Android appelle startActivityForResult (intention, MY_REQUEST_CODE).
La méthode startActivityForResult prend un code d'intention et un code de requête. Dans l'exemple, l'intention pointe explicitement vers l'activité démarrée. Le code de requête est n'importe quelle valeur int. Le code de requête identifie le résultat de retour lorsque le résultat arrive. (Vous pouvez appeler startActivityForResult plus d'une fois avant d'obtenir des résultats.Lorsque les résultats arrivent, vous utilisez le code de requête pour distinguer un résultat d'un autre.
Après avoir cliqué sur le bouton, l'utilisateur voit le GiveResultActivity.
L'utilisateur tape du texte dans le champ de texte, puis clique sur le bouton Retour. Le clic sur un bouton entraîne la création d'une intention par le code. L'intention a des informations supplémentaires - à savoir, la saisie de texte de l'utilisateur.
L'appel à setResult envoie un code de résultat (RESULT_OK, RESULT_CANCELED ou toute valeur int positive qui est significative pour le destinataire) avec l'intention pleine d'informations utiles.
A la fin du code, l'appel de la méthode finish termine l'exécution de l'activité. L'écran retourne à GetResultActivity.
À ce stade, Android appelle la méthode onActivityResult. La méthode utilise le résultat d'une manière ou d'une autre. (Dans cet exemple, la méthode onActivityResult affiche simplement le résultat dans un élément TextView.)
