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 :

Action sur saisie d'un EditText


Sujet :

Android

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut Action sur saisie d'un EditText
    Bonjour,

    J'ai un EditText dans lequel l'utilisateur saisira un valeur. Cette editText est dans un fragment. Je n'arrive pas à trouver quand récupérer sa valeur. Mon interface ne contient pas de bouton valider (je ne suis pas décideur la dessus) et la classe Fragment n'a pas, à priori, de méthode onBackPressed().
    Le switch de fragment est géré à l’extérieur du fragment par une sorte de routeur, et je voudrais pouvoir gérer le onBackPressed() à l'intérieur du fragment.

    Il y a-t-il un équivalent à onBackPressed() pour les fragments ?

    PS : mon routeur sur l'évênement onBackPressed()fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ft.remove(oldFragment);

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Je ne comprends pas tout à ton problème...

    Il y a-t-il un équivalent à onBackPressed() pour les fragments ?
    Non, pas à ma connaissance.
    Je n'arrive pas à trouver quand récupérer sa valeur
    Ben là dessus on ne peut pas t'aider. C'est à toi de nous le dire. Tu veux récupérer cette valeur à la suite d'un clic d'un bouton sur l'interface, de l'apparition d'un fragment, de la disparition d'un fragment, ...

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Je veux récupérer le contenu à la disparition du fragment contenant l'EditText. Sachant que quand je fait back (pour le faire disparaitre), je fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ft.remove(oldFragment);
    pour revenir au fragment précédent (et accessoirement je le le supprime de la backStack).

    Éventuellement je pourrait récupérer le contenu à la perte du focus mais si l'utilisateur fait back sans quitter l'EditText, l’événement ne sera pas appelé.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    la classe Fragment n'a pas, à priori, de méthode onBackPressed()
    Certes, mais elle existe toujours dans une Activity.
    Et ton Fragment est bien lié à une Activity n'est-ce pas ?
    Donc ton onBackPressed est appelé dans l'Activity qui utilise ce Fragment.


    Sinon, tu peux te servir des autres CallBacks des Fragments : onDetached par exemple.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    si je fait un remove() du fragment manager, le onDetach() est appelé ?

    J'avoue que déjà que le cycle de vie de activity est un peu complexe, mais celui des fragments est encore pire

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    C'est vrai que le lifecycle est un peu plus compliqué pour les Fragments.
    http://developer.android.com/images/..._lifecycle.png
    Je ne saurais pas vraiment te répondre, alors en attendant, fais des essais

  7. #7
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Quand tu remplaces un fragment par un autre, lors d'un "FragmentTransaction", tu peux spécifier si tu veux que la transaction soit sujette au "back" ou non...

    Bon, mais comme ce n'était pas la question initiale:

    1. Il est possible de "suivre" en temps réel la valeur entrée dans l'EditText.

    2. Il est possible de mettre le code dans le "onDestroyView" (la view n'est pas encore détruite à ce moment, on peut donc encore la lire).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  8. #8
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    nicroman : c'est plus ou moins ce que j'ai mit en place. Un TextWatcher sur mon EditText qui met à jour une variable à chaque modif et dans le onHiddenChanged(), je fait mon traitement sur cette valeur.
    Je n'ai pas encore testé

    J'ai bien vu le onDestroyView mais j'avais peur qu'il ne soit pas appelé comme les fragments on tendance à rester en mémoire. Si onHiddenChanged() en fonctionne pas, je testerai. Merci.

Discussions similaires

  1. actions sur chaine
    Par ericmart dans le forum ASP
    Réponses: 2
    Dernier message: 22/12/2004, 10h03
  2. [VB.NET] Action sur l'évènement IMPRESSION
    Par stephane93fr dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/04/2004, 17h03
  3. Pb d'action sur un clip
    Par bencasp dans le forum Flash
    Réponses: 4
    Dernier message: 22/10/2003, 17h11
  4. [Flash MX] Action sur un bouton
    Par WriteLN dans le forum Flash
    Réponses: 9
    Dernier message: 20/10/2003, 14h01

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