J'ai 2 activités, Activity1 et Activity2 .
Dans Activity1
J'ai un bouton et TextView . Lorsque le bouton est cliqué, Activity2 démarre.
Dans Activity2
J'ai un EditText .
Je veux afficher les données extraites de EditText dans Activity2 dans TextView dans Activity1 lorsque back est appuyé sur Activity2 .
quelqu'un peut-il m'aider avec le code pour que cela fonctionne?
android
android-activity
parent-child
pass-data
kumareloaded
la source
la source
startActivityForResult
Activity2
met la valeur dans le stockage persistant et laActivity1
lit à partir de là.Réponses:
Démarrez Activity2 avec
startActivityForResult
et utilisez lasetResult
méthode pour renvoyer les données de Activity2 vers Activity1. Dans Activity1, vous devrez remplaceronActivityResult
pour la miseTextView
à jour avec lesEditText
données de Activity2.Par exemple:
Dans Activity1 , démarrez Activity2 en tant que:
Dans Activity2 , utilisez
setResult
pour renvoyer des données:Et dans Activity1 , recevez des données avec
onActivityResult
:Si vous le pouvez, utilisez également SharedPreferences pour partager des données entre les activités.
la source
SharedPreferences
voyez cet exempleActivity1 doit démarrer Activity2 avec
startActivityForResult()
.Activity2 doit être utilisé
setResult()
pour renvoyer les données à Activity1 .Dans Activity2 ,
Dans Activity1 ,
la source
D' autres réponses ne fonctionnaient pas quand je mets
setResult
enonBackPressed
. Commenter l'appel à superonBackPressed
et appelerfinish
manuellement résout le problème:Et en première activité:
la source
Prenez ceci comme une alternative à startActivityforResult, mais gardez à l'esprit que dans de tels cas, cette approche peut être coûteuse en termes de performances, mais dans certains cas, vous devrez peut-être l'utiliser.
Dans Activity2,
Dans Activity1,
la source
Depuis votre FirstActivity, appelez SecondActivity à l'aide de la méthode startActivityForResult ().
Par exemple:
Dans votre SecondActivity, définissez les données que vous souhaitez renvoyer à FirstActivity. Si vous ne souhaitez pas revenir en arrière, n'en définissez aucun.
Par exemple: dans secondActivity si vous souhaitez renvoyer des données:
Si vous ne souhaitez pas renvoyer de données:
Maintenant, dans votre classe FirstActivity, écrivez le code suivant pour la méthode onActivityResult ().
la source
ceci est votre première activité1.
De là, vous démarrez votre Activity2.class en utilisant startActivityForResult (mRequestCode, Activity2.class);
Maintenant, c'est votre deuxième activité, le nom est Activity2
Maintenant, lorsque vous avez terminé votre deuxième activité, vous appelez la méthode setResult (), à partir de onBackPress () ou à partir de n'importe quel bouton, cliquez lorsque votre Activity2 sera détruit, la méthode de rappel de votre Activity1 onActivityResult () appellera à partir de là, vous pouvez obtenir vos données de l'intention ..
J'espère que cela vous aidera ... :)
la source
Lisez ces:
Ces articles vous aideront à comprendre comment transmettre des données entre deux activités dans Android.
la source
TL; DR Utilisation
Activity.startActivityForResult
Longue réponse:
Vous devriez commencer par lire la documentation du développeur Android. Plus précisément, le sujet de votre question est traité dans la
Starting Activities and Getting Results
section de laActivity
documentation.Comme exemple de code, le SDK Android fournit de bons exemples. En outre, d'autres réponses ici vous donnent de courts extraits de code à utiliser.
Cependant, si vous recherchez des alternatives, lisez cette question SO . Ceci est une bonne discussion sur la façon d'utiliser
startActivityForResults
avec des fragments, ainsi que sur quelques approches pour transmettre des données entre les activités.la source
et j'ai un problème pour lequel je voulais faire ce type de données d'envoi dans un Soft Button que j'avais créé et la softKey qui est la valeur par défaut dans chaque appareil Android, donc je l'ai fait, j'ai d'abord créé un
Intent
dans mon "A"Activity
:Puis dans ma deuxième activité, j'ai déclaré un champ dans mon "B"
Activity
:puis après avoir fait ma demande avec succès ou chaque fois que je voulais dire à l'activité "A" que ce travail est terminé avec succès ici, changez la valeur de resultCode pour la même que j'ai dit dans "A"
Activity
qui dans mon cas est "60" et puis:PS: n'oubliez pas de supprimer le
Super
de la méthode onBackPressed si vous souhaitez que cela fonctionne correctement.alors je devrais également appeler la
onActivityResult
méthode dans mon activité «A»:c'est tout, j'espère que cela vous aidera. #HappyCoding;
la source