Intent qui ne transmet pas de donnée

Résolu
samigtx1459 Messages postés 470 Date d'inscription   Statut Membre Dernière intervention   -  
samigtx1459 Messages postés 470 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,
J'ai un problème lorsque je passe d'une activité à une autre. J'essaie de transmettre une donnée qui est seulement une ID avec un Bundle et un Intent mais lorsque j'essaie de récupérer ma valeur il ne récupère rien et je ne sais pas pourquoi...
Merci à tout ceux qui pourront me venir en aide.
Voici deux parties de mes codes qui seront utiles je pense pour que vous puissiez me dire ou ça cloche.

Partie qui transmet la valeur:

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Bundle data = new Bundle();
                data.putInt("idMusic",position);
                Intent openMainActivity = new Intent(Main2Activity.this,MainActivity.class);
                openMainActivity.putExtras(data);
                openMainActivity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
                startActivityIfNeeded(openMainActivity,0);
            }
        });


Partie qui est censé récupérer la valeur :

@Override
    protected void onResume() {
        super.onResume();
        Intent intent = getIntent();
        int newIdCurrentSound;
        if (intent != null) {
            Bundle data = intent.getExtras();
            if (data != null) {
                newIdCurrentSound = data.getInt("idMusic");
                System.out.println("New ID : " + newIdCurrentSound);
                if (newIdCurrentSound != -1) {
                    mediaPlayer.reset();
                    idCurrentSound = newIdCurrentSound;
                    playSound(idCurrentSound);
                }
            }
        }

    }

1 réponse

  1. BunoCS Messages postés 436 Date d'inscription   Statut Modérateur Dernière intervention   3 931
     
    Hello,

    Généralement, on n'utilises pas de Bundle intermédiaire pour passer des types simples

    Envoi de paramètres
    Intent intent = new Intent(this, SecondActivity.class);
    intent.putExtra(EXTRA_MUSIC_ID_KEY, idMusic);
    startActivity(intent);


    Réception des paramètres (dans le
    onCreate()
    de ta 2nde Activity)
    Intent intent = getIntent(); // gets the previously created intent
    int idMusic = intent.getIntExtra(EXTRA_MUSIC_ID_KEY);


    Note : la variable EXTRA_MUSIC_ID_KEY est en fait une constante que tu aura pris soin d'initialiser correctement .

    Or, le flag
    Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
    te permet de ré-afficher une Activity déjà créé. Donc, tu ne passes pas dans le
    onCreate()
    mais dans le
    onNewIntent()
    .

    1
    1. samigtx1459 Messages postés 470 Date d'inscription   Statut Membre Dernière intervention   68
       
      Merci beaucoup pour ta réponse, j'ai enfin résolu mon problème !!!
      0