Intent qui ne transmet pas de donnée

Résolu
samigtx1459 Messages postés 482 Date d'inscription   Statut Membre Dernière intervention   -  
samigtx1459 Messages postés 482 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

BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 
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
samigtx1459 Messages postés 482 Date d'inscription   Statut Membre Dernière intervention   67
 
Merci beaucoup pour ta réponse, j'ai enfin résolu mon problème !!!
0