Partage
  • Partager sur Facebook
  • Partager sur Twitter

startActivityForResult() deprecated

Cours "Développer votre première application", chapitre 3.1

    11 décembre 2021 à 12:46:48

    Bonjour,

    Je vous remercie par avance pour l'aide que vous pourrez m'apporter.

    Pour débuter dans la programmation pour mobile Android, je suis la formation "Développer votre première application Android".

    Au chapitre 3.1, Récupérez le score du joueur dans l'activité principale, on introduit la méthode startActivityForResult() qui apparaît en erreur "Deprecated API usage".

    Au test de l'application, l'appel à l'activité concernée (GameActivity) ne se fait tout simplement pas et l'application s'arrête simplement.

    Les recherches que j'ai effectuées avant de faire appel à votre aide m'ont dirigé vers une nouvelle méthode registerForActivityResult().

    Malheureusement, dans l'état actuel de mes connaissances, je n'ai pas réussi à effectuer les adaptations nécessaires.

    Pourriez-vous, s'il vous plaît, m'aider à cette étape ?

    Cordialement.

    • Partager sur Facebook
    • Partager sur Twitter
      15 décembre 2021 à 16:12:35

      Bonjour,

      Je débute comme vous et j'ai cherché un peu comment utiliser le registerForActivityResult . Voila comment j'ai fait (je ne mets que les lignes concernant le lancement de GameActivity et la récupération du retour:

      public class MainActivity extends AppCompatActivity {

          ...

          ActivityResultLauncher activityResultLauncher;

          @Override

          protected void onCreate(Bundle savedInstanceState) {

              ...

              activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() {

                  @Override

                  public void onActivityResult(Object result) {

                      ActivityResult res = (ActivityResult) result;

                      if (res.getResultCode() == RESULT_OK && res.getData() != null) {

                          // Fetch the score from the Intent

                          int score = res.getData().getIntExtra(GameActivity.BUNDLE_EXTRA_SCORE, 0);

      // Pour vérifier la bonne récupération du résultat:

                          AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

                          builder.setTitle("Bien joué !")

                                  .setMessage("Le score est de " + score)

                                  .setPositiveButton("OK", new DialogInterface.OnClickListener() {

                                      @Override

                                      public void onClick(DialogInterface dialog, int which) {

                                       }

                                  })

                                  .create()

                                  .show();

                      }

                  }

              });

              mPlayButton.setOnClickListener(new View.OnClickListener() {

                  @Override

                  public void onClick(View v) {

                      // The user just clicked

                      ...

                      Intent gameActivityIntent = new Intent(MainActivity.this, GameActivity.class);

                      activityResultLauncher.launch(gameActivityIntent);

                  }

              });

          }

      }

      Bon courage pour la suite !

      • Partager sur Facebook
      • Partager sur Twitter
        17 décembre 2021 à 18:01:32

        Bonjour,

        Merci beaucoup pour votre aide.

        Je teste tout de suite.

        Bien à vous.

        Laurent 

        • Partager sur Facebook
        • Partager sur Twitter

        startActivityForResult() deprecated

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown