J'ai une Location
activité qui peut être appelée à partir de nombreuses activités, telles que Sign up
et Order
. Dans l' Location
activité, l'utilisateur entre son emplacement, donc l'activité Location
retournera ce nouvel emplacement à l'activité qui l'a appelé.
Ainsi, lorsque l' Sign up
activité appelle l' Location
activité, elle doit renvoyer les données à l' Sign up
activité. Une autre fois, l' Order
activité fera la même chose.
Remarque
Je sais que vous me direz que je devrais afficher le code, mais je ne vous demande pas de me donner le code; Je veux juste quelques conseils, liens ou bons fils.
android
android-activity
onactivityresult
utilisateur utilisateur
la source
la source
Réponses:
Afin de démarrer une activité qui devrait renvoyer le résultat de l'activité d'appel, vous devez faire quelque chose comme ci-dessous. Vous devez passer le code de demande comme indiqué ci-dessous afin d'identifier que vous avez obtenu le résultat de l'activité que vous avez commencée.
Dans l'activité, vous pouvez utiliser
setData()
pour renvoyer le résultat.Alors là encore, dans la première activité, vous écrivez le code ci-dessous dans onActivityResult ()
MODIFIER en fonction de votre commentaire: si vous souhaitez renvoyer trois chaînes, suivez ceci en utilisant des paires clé / valeur avec intention au lieu d'utiliser Uri.
Obtenez-les dans onActivityResult comme ci-dessous:
la source
requestcode
je peux mettre un entier?new Intent(this, OtherActivity.class);
je peux utiliser ce code dans une activité.Si vous souhaitez terminer et ajouter simplement un
resultCode
(sans données), vous pouvez appelersetResult(int resultCode)
avantfinish()
.Par exemple:
Ensuite, dans votre activité d'appel, vérifiez le
resultCode
, pour voir si nous allons bien.N'oubliez pas d'appeler l'activité avec
startActivityForResult(intent, someCustomRequestCode)
.la source
Activity.RESULT_OK
est en fait-1
, au cas où cela dérouterait quelqu'un. Je suggérerais simplement d'utiliser lesActivity
constantes