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 :

Rafraichir un CursorAdapter à chaque modification du Cursor


Sujet :

Android

  1. #1
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut Rafraichir un CursorAdapter à chaque modification du Cursor
    Bonjour,

    J'ai une classe qui extends Activity.
    J'ai un Cursor.
    J'ai une classe qui extends CursorAdapter.

    Je fais comme ça dans l'Activity :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CursorAdapter adapter = new CaveAdapter2(mContext, mCursor);
    ListView listView = (ListView) findViewById(R.id.listViewCave);		
    listView.setAdapter(adapter);
    J'ai essayé de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adapter.notifyDataSetChanged ();
    Mais ça ne change rien.

    Sinon j'ai essayé mais c'est deprecated et ça n'est pas efficace dans mon cas.

    Par contre si je recréer un adapter et que je le reset cela fonctionne, mais c'est pas vraiment ce que je cherche à faire.

    Si vous avez des indications merci de me les faire parvenir.

    Edit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    adapter.changeCursor(mCursor);
    adapter.notifyDataSetChanged();
    Semble fonctionner, mais c'est un peu bizarre quand même.

    Re edit :
    En fait rien que requery() semble fonctionner, le problème c'est qu'il faut que je fasse Ctrl + F12 afin que l'affiche se recharge.
    Keith Flint 1969 - 2019

  2. #2
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Au final je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    adapter = new CaveAdapter2(mContext, mCursor);
    listView.setAdapter(adapter);
    Et ça fonctionne bien, mais ça doit pas être le moins économe en ressource.
    Keith Flint 1969 - 2019

  3. #3
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Normalement tu dois mettre à jour seulement ton cursor ...

    Avec que le requery .

    Par contre si tu veux te mettre à jour alors il faut utiliser les CursorLoader

    http://stackoverflow.com/questions/7...-cursorloaders

    Une discussion sur son utilisation.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  4. #4
    Membre extrêmement actif
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    9 605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 9 605
    Points : 18 523
    Points
    18 523
    Par défaut
    Bonjour,

    En fait j'ai trouvé l'erreur, je faisais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mCursor = ...;
    adapter = new CursorAdapter(mContext, mCursor);
    mCursor = ...;
    mCursor.requery();
    J'ai mis du temps à comprendre que c'était stupide.

    Maintenant je fais :
    adapter.getCursor().requery();
    Ou adapter.changeCursor(nCursor);

    Et tout fonctionne, j'ai plus de problème de close() pas fais.

    Et sinon pour les CursorLoaders ils sont disponible qu'à partir d'Android 3.0 et je fais une application Android 2.1.
    Enfin je crois que c'est apparu à API Level 11.
    Keith Flint 1969 - 2019

  5. #5
    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
    Citation Envoyé par thierrybenji
    Et sinon pour les CursorLoaders ils sont disponible qu'à partir d'Android 3.0 et je fais une application Android 2.1.
    Enfin je crois que c'est apparu à API Level 11.
    Avec backport possible via l'API de support
    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

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

Discussions similaires

  1. Rafraichir mes vues à chaque modification du modèle
    Par ALEX731 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/10/2014, 16h09
  2. Réponses: 1
    Dernier message: 09/02/2009, 09h26
  3. Réponses: 2
    Dernier message: 01/02/2008, 21h33
  4. rafraichir une requête chaque 15 minute
    Par saidm dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/10/2007, 16h09
  5. Réponses: 5
    Dernier message: 27/03/2007, 16h55

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