3 votes

Comment passer un objet Parcelable d'une activité enfant à une activité parent ?

Je suis en train de construire une petite application qui nécessite une authentification. Dans mon activité principale, j'ai un Parcelable classe nommée "user" qui contient le nom d'utilisateur et le mot de passe d'un utilisateur, lorsqu'un utilisateur clique sur un bouton, il démarre une nouvelle activité en passant par cette classe d'utilisateur. Cela fonctionne comme un charme, dans l'activité enfant l'utilisateur remplit le formulaire pour s'authentifier, puis lorsque l'utilisateur appuie sur le bouton retour, j'aimerais renvoyer la classe "user" à mon activité principale.

Est-il possible de le faire ?

13voto

rciovati Points 5991

Commencez l'activité de votre enfant par :

startActivityForResult(startIntent, 1);

Dans l'activité de votre enfant, interceptez le bouton "retour" et ajoutez vos données :

@Override
public void onBackPressed() {
    Intent data = new Intent();
    data.putExtra("key", yourDataHere);
    setResult(Activity.RESULT_OK, data);
    super.onBackPressed();
}

Et obtenir des données à l'intérieur de l'activité parentale à l'intérieur de onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == 1 && resultCode == Activity.RESULT_OK){
        DataType yourData = (DataType) data.getParcelableExtra("key");
        //Do whatever you want with yourData
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X