0
votes

Comment retourner les données de l'activité2 à l'activité1 Si je ne sais pas quand l'activité2 sera terminée?

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.

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.

Comment puis-je aborder ce problème et renvoyer le solde mis à jour à l'activité 1?

Merci d'avance,

alexandre


0 commentaires

3 Réponses :


1
votes

Il existe plusieurs façons d'y parvenir et vous pouvez utiliser n'importe lequel.

1) Vous pouvez remplacer le iNackPress méthode d'activité2 Pour détecter lorsque l'utilisateur appuie sur la touche Back et définissez votre résultat là-bas.

2) Vous pouvez récupérer le solde mis à jour de votre base de données lorsque votre activité OnStart est appelée. (Ou vous pouvez utiliser la liaison de données / données en direct pour une source unique de vérité)

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.


1 commentaires

Réglage du résultat dans OnDestroy () est trop tard. OnAstiVIVIVIVITURE () aura déjà été appelé sur Activity1 . Vous n'avez pas non plus besoin d'une classe Singleton. Vous pouvez utiliser juste une variable Static défini dans n'importe quelle classe.



0
votes

selon Doc officiel

Vous pouvez appeler une seconde activité comme Ceci: xxx

puis dans votre première activité en attente de résultat de cette manière: xxx


0 commentaires

1
votes

Activity1 devrait lancer Activity2 à l'aide de startactivityForresult () .

Chaque fois que l'utilisateur fait quelque chose dans Activity2 , appelez setresult () avec une intention contenant le solde actuel de "Extra".

Lorsque l'utilisateur appuie sur la touche BACK, OnAticVIVIVIVIVIVIVIVESULT () sera appelé dans Activity1 avec la dernière intention que vous avez transmise à SETRESULT () . Vous pouvez ensuite extraire le solde actuel de la "extra" de l'intention "

Vous n'avez pas besoin de remplacer quoi que ce soit.


0 commentaires