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 :

Utilisation de fragments - où placer le code ?


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut Utilisation de fragments - où placer le code ?
    Bonjour

    j'ai créé une appli en utilisant des "activity" standards, et je tente maintenant de les transformer en utilisant un "viewpager" et "fragments" (3 activités => 1 viewpager & 3 fragments).

    Tout marche [à peu près] bien, le comportement du clic sur ma checkbox (edition de SharedPreferences) marche bien, mais aucun refresh du fragment ne se produit (j'essaie de faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((TextView)getActivity().findViewById(idTextview)).setText("xxx")
    Cela ne crashe pas mais ne fait rien... même chose pour les Toasts...

    Je pense que mon problème vient du fait que le code de ma checkbox (clic) est placé dans mon fragment, mais je ne suis pas certain.

    - pouvez-vous me donner votre avis ?
    - Faut-il plutot placer tous les comportements dans le oncreate de l'activité plutot que dans les codes des fragments ?

    Merci
    Nico

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Les fragments doivent être pensés comme des éléments indépendants et réutilisables. Le code qui lui correspond doit donc être écrit dans ce Fragment.

    Pour pouvoir communiquer avec l'Activity parente (ici une FramgentActivity je suppose) tu doit réaliser un mécanisme de callback à l'aide de listener. C'est très bien expliqué dans la documentation Android.

    Par contre, je ne comprend pas trop ton problème.
    Peux tu expliquer où se situe la checkbox (dans l'Activity ou dans un des Fragments) et quel est le résultat attendu.

  3. #3
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    Hello
    merci pour la réponse. J'ai finalement réussi à créer ma checkbox et executer le comportement attendu (sauvegarde d'un setting de l'application).

    J'ai maintenant une listview et un bouton à mettre ensemble dans un nouveau fragment. Où faut-il implémenter leur comportement et initialisation ? plutot dans le "oncreateview", dans le "onactivitycreated" ou en déléguant à l'activité elle-même ?

    Ma question est aussimaintenant plus globale concernant l'utilisation de fragments :
    Quand faut-il implémenter le code dans le fragment lui même, et quand faut-il le déléguer à l'activity ?

    Merci
    Nico

  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
    Bon... quel est l’intérêt de passer par des fragments ?
    Pouvoir réutiliser le code... Ainsi une liste de pommes, pourra présenter quelques éléments d'interface (comme une action-bar contextuelle, etc..) en plus de la liste de manière systématique à l'utilisation, même si elle apparaît cette liste de pommes dans plusieurs activités.


    Donc l'idée est de dire, qu'à chaque fois qu'on utilise un fragment, c'est dans le but de le réutiliser dans plusieurs activités. Il est donc quasi-interdit pour ce fragment de faire appel à l'activité.

    Par contre, l'inverse est possible... l'activité sait quels fragments sont utilisés / affichés, et peut leur passer des paramètres pour qu'ils réagissent différemment par moment.

    Quand un fragment est susceptible de notifier une activité parente d'une action donnée, il faut dans ce cas utiliser l'un des deux concepts suivants:
    * Les messages (handlers / intent / ...). Un poil lourdingue à mon avis, et surtout asynchrones.
    * Les listeners. Le fragment définit un listener (interface statique publique locale au fragment). L'activité implémente ce listener et le passe au fragment.

  5. #5
    Membre éclairé Avatar de Nicopilami
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Janvier 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Janvier 2009
    Messages : 354
    Par défaut
    super explication, merci

Discussions similaires

  1. Comment utiliser des instructions SSE2 dans un code c++?
    Par alexIsBack dans le forum x86 32-bits / 64-bits
    Réponses: 7
    Dernier message: 22/02/2006, 19h10
  2. Projet VB v6 : utilisation de requête SQL dans mon code
    Par MITCH31 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/10/2005, 15h02
  3. [vb.net] utilisation d'une variable dans le code
    Par arnolem dans le forum Windows Forms
    Réponses: 9
    Dernier message: 30/09/2005, 19h22
  4. [MFC](encapsulation ADO) ou placer le code
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 13/06/2002, 14h58

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