Donc, j'ai une activité 1, qui est une activité principale du menu. Ensuite, j'ai une activité 2 qui est une page de magasin. L'activité de magasin commence par le solde utilisateur actuel. Lorsque l'utilisateur est dans le magasin, il peut acheter plusieurs choses. P>
Je veux renvoyer la balance mise à jour à l'activité principale du menu après que l'utilisateur a acheté des choses. J'utilise StartActivityForresult, mais le problème est que je ne sais pas lorsque l'activité 2 (le magasin) se terminera. Je n'utilise pas de bouton 'Terminer' ou quoi que ce soit qui retient l'utilisateur dans le menu principal. L'utilisateur redevient simplement dans le menu principal en cliquant sur le bouton arrière de son téléphone. P>
Comment puis-je aborder ce problème et renvoyer le solde mis à jour à l'activité 1? P>
Merci d'avance, P>
alexandre p>
3 Réponses :
Il existe plusieurs façons d'y parvenir et vous pouvez utiliser n'importe lequel. P>
1) Vous pouvez 2) Vous pouvez récupérer le solde mis à jour de votre base de données lorsque votre activité 3) Vous pouvez utiliser une classe Singleton pour maintenir le solde actuel. Mettez-le à la mettre à jour dans Activity2 et récupérez-le dans Activity1. P> remplacer code> le
iNackPress code> méthode d'activité2 Pour détecter lorsque l'utilisateur appuie sur la touche Back et définissez votre résultat là-bas. P>
OnStart code> est appelée. (Ou vous pouvez utiliser la liaison de données / données en direct pour une source unique de vérité) p>
Réglage du résultat dans OnDestroy () Code> est trop tard.
OnAstiVIVIVIVITURE () CODE> aura déjà été appelé sur
Activity1 code>. Vous n'avez pas non plus besoin d'une classe Singleton. Vous pouvez utiliser juste une variable code> Static code> défini dans n'importe quelle classe.
selon Doc officiel
Vous pouvez appeler une seconde activité comme Ceci: p> puis dans votre première activité en attente de résultat de cette manière: p>
Chaque fois que l'utilisateur fait quelque chose dans Lorsque l'utilisateur appuie sur la touche BACK, Vous n'avez pas besoin de remplacer quoi que ce soit. p> Activity1 code> devrait lancer
Activity2 code> à l'aide de
startactivityForresult () code>. P>
Activity2 code>, appelez
setresult () code> avec une intention code> contenant le solde actuel de "Extra". p>
OnAticVIVIVIVIVIVIVIVESULT () CODE> sera appelé dans
Activity1 CODE> avec la dernière intention code> que vous avez transmise à
SETRESULT () CODE>. Vous pouvez ensuite extraire le solde actuel de la "extra" de l'intention " p>