Aller au contenu

Pile d'historique et bouton BACK


cyberalternative

Recommended Posts

Posté(e)

Bonjour à tous.

Je souhaite naviguer dans mon application avec le bouton BACK (flèche retour). Basiquement une activity en lance une autre qui vient se placer au dessus (TOP) de la pile d'historique (Stack) d'activities de telle sorte que le bouton BACK ramène à l'activity lancée précédemment.

Je souhaite dépasser ce schéma et mettre 2 activities au même niveau comme ceci :

Activity 1 --> Activity A + Activity B.

Si "BACK" pressée dans Activity A -> retour à Activity 1

Si "BACK" pressée dans Activity B -> retour à Activity 1

Mon problème est le suivant :

C'est l'activity A qui lance obligatoirement l'activity B : quand je presse "BACK" dans l'activity B je reviens à l'activity A alors que je souhaite revenir à l'activity 1.

J'ai recherché des solutions avec les flags de mon intent (lors du lancement de l'activity B ) mais je n'ai pas réussi à résoudre mon problème.

En vous remerciant.

  • 2 weeks later...
Posté(e)

Tu as tenté de setter le flag "FLAG_ACTIVITY_NO_HISTORY" au lancement de l'activité A ?

Si tu le set (en lançant A, pas B), l'activité A se terminera dès que tu passeras sur B et le bouton back te rammènera donc sur Activity 1.

L'inconvénient est que cela stoppe l'activité A. Mais si ça n'est pas gênant pour ton appli ça pourrait être une solution.

Posté(e)

Bonjour.

J'avais tenté cela sur l'activité B et je comprends maintenant pourquoi ça ne fonctionnait pas.

Si j'ai bien compris A n'a pas d'historique donc quand on clique sur "retour" sur B on revient à l'activité précédente à A.

Le souci c'est que cette solution assez génante pour mon appli. Je testerai quand même cela dit pour apporter plus d'éléments de réponse.

Merci à toi !

Posté(e)

Apparemment "NO_HISTORY" ne fonctionne pas chez moi :

- Je démarre l'activity A

- Je démarre l'activity B avec "NO HISTORY" (via un bouton sur l'activity A)

- Je relance l'activity A (via un bouton sur l'activity B ) et je clique sur le bouton "BACK" --> cela m'amène à l'activity B :(

Nota : C'est un TabActivity parent qui s'occupe de lancer les activity A et B. Pour être plus précis c'est même un "GDTabActivity" (greendroid).

Posté(e)

J'ai peut-etre mal compris, mais il me semble que pour faire ce que tu veux, il suffit d'appeler la méthode 'finish' sur ton activité 'A' quand elle appelle ACtivité B ( et inversement ).

Comme ca, l'activité B va s'ouvrir, l'activité A se fermera ( donc disparaitra de la pile d'activité ), et un back sur B te ramenera à celui qui a appelé A.

Il me semble que c'est la solution pour ce genre de probleme ?

Ca te semble convenir ?

Emmanuel / Alocaly

Posté(e)

Salut,

le problème avec finish(), c'est que ça supprime les "données" de l'activity (je passe de l'activity A à l'activity B avec un bouton "switch" (ou "toggle")).

Est-il judicieux d'overrider la méthode onBackpressed() pour ce cas particulier ?

Merci :).

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...