Android App Programming 2021-2022
Lab 2: Intents

The goal of this lab is to get you familiarized with the basic use of Intents.

Remember:

1. App with 2 Activities that communicate

Create an app with two activities.
  1. Create two Empty activities. The first activity should contain a button that allows you to go to the second one. Use intents ( Intent i = new Intent(this,OtherActivity.class) and don't forget to 
startActivity(i);).

  2. In the main activity add an EditText view (in the builder appears as PlainText, but in xml you see it is an EditText). Users can type here (for example they can type a question). In the second activity, add a TextView view that displays the text (question) that the user typed on the first activity.

  3. Then add a PlainText view also to the second activity where users can type back an answer.


2. Simple Game, again

Create an app that asks the user a sequence of multiple choice questions and then displays the number of correct answers given by the user.

  1. You can reuse elements of your app from Lab 1. Remember you can use a RadioButtonGroup View (with multiple RadioButtons) that you can create in you activity_main.xml file. As in the previous lab, you can access the RadioButtonGroup with findViewById(R.id.myRadioButtons). You can get the ID of the selected radio button in the group with myRadioButtons.RadioGroup.getCheckedRadioButtonId().

  2. This time around, create at least two activites: one for the questions and another one to display the user's score. This final display should also have a button to return to the main activity.

    What happens to the state of your radio buttons ?

  3. Once you have that done, extend your app so that it is possible to navigate back and correct previous questions using the back button. This time start the second activity (that displays the results) using a ActivityResultLauncher and registering to it a callback as we discussed in class.

    What happens to the state of your radio buttons ?

  4. back to the course web site





    FR - FR - FR



    L'objectif est de vous familiariser avec l'utilisation de base des Intents.

    Rappel :

    1. App avec 2 activités qui communiquent

    Créez une appli avec deux activités.
    1. Créez deux activités vides. La première activité doit contenir un bouton qui permet d'aller vers la seconde. Utilisez des intents (Intent i = new Intent(this,OtherActivity.class) et n'oubliez pas de démarrer l'activité(i);).

    2. Dans l'activité principale, ajoutez une view EditText (dans le builder apparaît comme PlainText, mais dans xml vous voyez que c'est un EditText). Les utilisateurs peuvent taper ici (par exemple ils peuvent taper une question). Dans la deuxième activité, ajoutez une view TextView qui affiche le texte (question) que l'utilisateur a tapé sur la première activité.

      • Vous pouvez utiliser le Bundle d'Extras qui vient avec un Intent dans la première activité (i.putExtra("nom de la donnée", valeur de la donnée) ).

      • Vous pouvez accéder à cette valeur dans la deuxième activité en obtenant d'abord l'accès au bundle (Bundle extras = getIntent().getExtras()) et en lisant ensuite les données au bon format (par exemple, extras.getString ("nom de la donnée"), extras.getFloat("nom de la donnée"))

      • .
      • Observez vos messages Log.d pour voir quand les activités sont créées.

    3. Ajoutez ensuite une view PlainText également à la deuxième activité où les utilisateurs peuvent taper une réponse.

      • Dans la deuxième activité, créez un Intent (attachez-le à votre bouton) et appelez setResult(RESULT_OK, returnIntent); finish(); afin de renvoyer une Intent à la première activité.

      • Dans la première activité, créez un ActivityResultLauncher et enregistrez une méthode de Callback registerForActivityResult.

      • Dans la méthode onActivityResult(ActivityResult result) à l'intérieur de Callback, récupérez l'Intent result.getData() et accédez à son Extra bundle pour avoir accès aux données envoyées par la seconde activité

      • Créez un Intent pour lancer la seconde activité et demandez à votre ActivityResultLauncher de lancer l'Intent.

      • Observez vos messages Log.d pour voir quand les activités sont créées.


    2. Jeu simple, encore une fois

    Créez une application qui pose à l'utilisateur une séquence de questions à choix multiples et qui puis affiche le nombre de bonnes réponses données par l'utilisateur.

    1. Vous pouvez réutiliser des éléments de votre app du lab 1. Rappelez-vous que vous pouvez utiliser une view RadioButtonGroup (avec plusieurs RadioButtons) que vous pouvez créer dans votre fichier activity_main.xml. Comme dans le laboratoire précédent, vous pouvez accéder au RadioButtonGroup avec findViewById(R.id.myRadioButtons). Vous pouvez obtenir l'ID du RadioButton sélectionné dans le groupe avec myRadioButtons.RadioGroup.getCheckedRadioButtonId()

    2. Cette fois-ci, créez au moins deux activités : un pour les questions et une autre pour afficher le score de l'utilisateur. La deuxième activité doit également comporter un bouton pour revenir à l'activité principale.

      Que se passe-t-il avec l'état de vos RadioButton ?

    3. OUne fois cela fait, étendez votre application pour qu'il soit possible de naviguer en arrière et de corriger les questions précédentes à l'aide du bouton retour. Cette fois-ci, lancez la deuxième activité (qui affiche les résultats) en utilisant un ActivityResultLauncher et en lui enregistrant un callback comme nous en avons discuté en classe.

      Que se passe-t-il avec l'état de vos RadioButton ?

    4. back to the course web site