IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Back Button et suppression


Sujet :

Android

  1. #1
    Membre habitué
    Inscrit en
    Avril 2013
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 9
    Par défaut Back Button et suppression
    Bonjour,

    J'en suis à ma première application Android et j'ai remarqué un problème en la testant en qui concerne l'utilisation du back button suite à une suppression de données.

    J'utilise une bd SQLite pour stocker des données. Une activité affiche à l'aide d'un list view les titres de chacun des items enregistrés dans la bd. Lorsque l'on clique sur un des items, une activité est lancée et on voit les données pour l'item choisi. Il y a aussi entre autres un bouton qui permet de supprimer cet item de la bd. Lorsque l'on clique dessus, un dialog est ouvert et demande la confirmation. Si on confirme, on est retourné à l'activité qui affiches tous les titres. La suppression a bel et bien lieu.

    Or, si l'on clique sur le back button, on est de retour dans l'activité qui affiche les détails de cet item. Je ne veux pas conserver ce comportement, car ça ne fait pas de sens puisque l'item a été supprimé. C'est d'autant plus problématique que si l'utilisateur utilise encore le bouton pour la suppression cela cause une erreur.

    Pouvez-vous svp me donner des pistes de solutions pour remédier à cette situation?

    Merci pour votre aide!

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Désolé... je ne vois pas le problème....

    ListActivity => DetailsActivity => DeleteConfirm => DetailsActivity.finish() => ListActivity

    Comment avec back on peut revenir à DetailsActivity ? Elle n'est à priori plus dans la pile....
    On peut voir le code fait après confirmation du delete ?

  3. #3
    Membre habitué
    Inscrit en
    Avril 2013
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 9
    Par défaut
    Bonjour,

    Voici le code en question. Avant que je lise votre réponse, j'ai découvert les flags et j'ai ajouté la ligne 2 qui a réglé le problème. En tant que débutant, je ne connaissais pas non plus la méthode finish() mentionnée dans votre message. Selon vous quelle est la meilleure pratique? Utiliser ce flag ou finish?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Intent intent = new Intent(this, ListBudgetActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); // j'ai ajouté cette ligne qui a réglé mon problème
    startActivity(intent);
    Merci pour votre aide!

  4. #4
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Ben... pourquoi ne pas simplement appeler "finish()" ?

    L'activité d'édition de l'item est finie ? oui ? alors on fait finish() dessus....
    Peut importe qu'on vienne de "ListBudgetActivity", ou d'une autre activité (voir d'une autre application).

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2008
    Messages
    280
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 280
    Par défaut
    Salut,

    soit tu utilise la méthode finish après avoir lancé l'activity suivante, soit tu fais un activityforResult et en fonction du résultat tu appelles finish ...

    C'est comme ça que j'aurais fait je pense ...

  6. #6
    Membre habitué
    Inscrit en
    Avril 2013
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2013
    Messages : 9
    Par défaut
    Merci pour votre aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Texte du Back Button dans la barre de navigation
    Par alexj78 dans le forum Développement iOS
    Réponses: 2
    Dernier message: 15/01/2014, 14h59
  2. filter non utilisé avec le back button du browser
    Par chris_013 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 02/09/2009, 16h40
  3. Réponses: 0
    Dernier message: 28/07/2009, 09h29
  4. portlet facelets et Back button IE
    Par progamer54 dans le forum JSF
    Réponses: 6
    Dernier message: 20/02/2008, 23h05
  5. Réponses: 3
    Dernier message: 12/06/2002, 21h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo