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

Composants graphiques Android Discussion :

Mise à jour d'une listView d'un fragment


Sujet :

Composants graphiques Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Mise à jour d'une listView d'un fragment
    Bonjour,
    J'ai un petit soucis:
    Mon application se compose d'un ViewPager contenant 3 Fragments. Dans ces 3 Fragments, il y a une listView.
    J'aimerai pouvoir mettre à jour ces listView.

    Une solution que j'ai trouvé est de re-forcer la création des Fragments en appliquant un nouveau adapter sur le ViewPager(setAdapter).
    Mais est-ce optimal? je ne souhaite pas reconstruire l'ensemble des Fragments mais juste mettre à jour les listView.
    Sur les forums spécialisés, il y a beaucoup opinion sur ce problème(notifydatasetchanged par exemple), mais je n'ai jamais réussi à les appliquer.
    Voici en gros mon code:

    Activity:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        private ViewPager viewPager;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            List<Fragment> fragments = CreatePageFragments();
            pageAdapter = new PageAdapter(getSupportFragmentManager(), fragments);
            viewPager.setAdapter(pageAdapter);
        }
    Chacun des fragments se composent de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public class MyFragment extends Fragment {
        private static ListView listview;
     
        public MyFragment () {
        }
     
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.listview, container, false);
            listview = (ListView) view.findViewById(R.id.listView);
            MyAdapter adapter = new MyAdapter (getActivity(), data);
            listview.setAdapter(adapter);
            return view;
        }
    }
    Avez-vous une solution sur ce problème?

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Qu'entends-tu par
    Citation Envoyé par Bwg28
    J'aimerai pouvoir mettre à jour ces listView
    ?
    Tu désirs mettre à jour la ListView d'un même fragment ? D'un autre Fragment ? Faire des réactions entre Fragment ?

    Si c'est le deuxième ou le troisième (ce que je pense), je te suggères de passer par l'Activity responsable via une interface pour mettre à jour les donner et indiquer que la ListView devra se mettre à jour.
    Documentation : https://developer.android.com/traini...unicating.html
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je désire mettre à jour toutes les ListView, sachant qu'il y en a une par fragment.
    Je n'ai pas besoin de communication entre fragment.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Tu n'as pas répondu à ma question. Je vais la reformuler : quel est l'événement changeant les données de tes ListView ? La question est différente, le but est le même.

    Si ton Fragment A fait changer ton Fragment B, tu as une communication entre les Fragments.
    Ou je ne comprends absolument pas ton souci, et la responsabilité est au niveau de l'Activity et tu ne devrais pas avoir de problème à demander aux ListView de se mettre à jour suivant les nouvelles données.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    L’événement d'une mise à jour, est notifié par un bouton dans l'action bar. Donc géré par l'activité principale.
    La question c'est comment je peux mettre à jour le contenu(listview) de tous les fragments. Est ce que je dois détruire entièrement les fragments pour les reconstruire,
    ou y a t'il un moyen pour modifier juste le contenu(listview) sans détruire les fragments?

    Il n'y a aucune communication entre fragment, c'est juste de l'affichage de donnée.

  6. #6
    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
    Il suffit dans les fragments d'avoir une fonction (genre "refreshList()"), appelée par l'activité quand nécessaire.
    Il y a fort à parier que cette même fonction soit appelé par le fragment lui-même à sa création.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci, avec vos remarques, j'ai trouvé la solution.

Discussions similaires

  1. Mise à jour d'une ListView via MySQL
    Par pouti dans le forum Composants graphiques
    Réponses: 15
    Dernier message: 14/12/2013, 21h14
  2. [XL-2007] Mise à jour d'une listview
    Par rvtoulon dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/10/2009, 19h06
  3. Mise à jours d'une ListView contenant un adapter custom
    Par ghostwan dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 19/09/2009, 18h20
  4. Mise à jour d'une table avec un fichier csv
    Par blackangel dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 26/05/2005, 14h46
  5. Mise à jour d'une bd mysql
    Par joquetino dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 11/01/2005, 14h05

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