The goal of this lab is to get you familiarized with the basic use of Intents.
Remember: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);).
Add a log.d message in the onCreate methods of the two activities.
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.
You can use the Extras bundle that comes with an intent in the frist activity (i.putExtra("data name", data value) ).
You can access this value in the second activity by first getting access to the bundle (Bundle extras = getIntent().getExtras()) and then reading the data on the correct format (e.g., extras.getString ("data name"), extras.getFloat("data name"))
Observe your Log.d messages about how the activities are created.
Then add a PlainText view also to the second activity where users can type back an answer.
In the second activity create an Intent (attach it to your button) and call setResult(RESULT_OK, returnIntent); finish(); in order to send an intent back to the first activity.
In the first activity create a ActivityResultLauncher and register it to a callback method registerForActivityResult.
In the onActivityResult(ActivityResult result) method inside the callback method, get the resulting intent result.getData() and access its Extra bundle to get access to the data sent by the second activity
Create an Intent for the second activity and ask you ActivityResultLauncher to launch the Intent.
Observe your Log.d messages about how the activities are created.
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.
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().
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 ?
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 ?
L'objectif est de vous familiariser avec l'utilisation de base des Intents.
Rappel :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);).
Ajoutez un message log.d dans les méthodes onCreate des deux activités.
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.
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.
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.
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()
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 ?
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 ?