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 :

Gestion des tris


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 345
    Par défaut Gestion des tris
    Bonjour à tous,

    je suis en train de gérer les tris dans mon application. C'est à dire que l'utilisateur aura le choix de trier les infos par prix, note etc...

    N'ayant pas trop d'idée comment gérer ça, j'ai utilisé les menu et sous menu Android. Dans le sous menu de trier j'ai une liste de RadioButton, qaui par défaut vaut 1 (le premier RadioButton). Si l'utilisateur change cela la variable passe à une autre variable et en fonction de cela il faut que je relance l'activité, mais comment je peux faire pour refaire un rechargement de l'activité. En effet, car je fais une connexion à une BDD MySQL et en fonction de la valeur de la variable, la requête ne sera pas la même dans le fichier PHP.

    Je vous remercie

    Italia57

  2. #2
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 243
    Par défaut
    Le plus simple, c'est d'avoir toutes les données dans la base de données SQLite à l'intérieur du téléphone.

    Que la ListView soit construite avec un CursorAdapter.
    Et après il y a une méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monAdapter.changeCursor(cursor);
    Mais si tu veux juste savoir comment recharger une ListView il faut dire à l'Adapter :
    notifyDataSetChanged
    http://developer.android.com/referen...tChanged%28%29

    Parce que là si j'ai bien compris, si l'utilisateur veut trier ta liste, tu envois un truc à un serveur qui va te retourner la liste ?
    C'est pas terrible de faire ça...

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 345
    Par défaut
    Oui voilà, tu as bien, compris c'est ce que je souhaite faire...

    Le problème c'est qu'a aucun endroit de mon application j'utilise une BDD SQL Lite vu que je partage ma BDD MySQL pour le site et l'application mobile.

    Du coup comment je pourrais faire pour utiliser notifyDataSetChanged () dans mon cas ? car il faut que je refasse appel au client HTTP pour qu'il aille à nouveau dans le PHP etc...

  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 : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Je pense que tu devrais au minimum sauvegarder les informations que tu as demandés au serveur. Pense au cas où l'utilisateur n'a pas de connexion data ni Wifi.
    Cela ferait un premier temps d'accès "long" et les autres plus rapide. Cela t'éviterai aussi de faire X fois la même requête, épargnera le forfait data de l'utilisateur ... ainsi que de manipuler directement les données. Ce que tu demandes ici est simplement un "order by" SQL.

    Sinon, pour répondre totalement à ton besoin, j'imagine que tu utilises des classes représentant les items que tu as eu suite à ta requête. Fais en sorte qu'ils puissent être trié selon un comparateur, et trie cette liste selon ce comparateur. Peut être s'intéresser au design pattern "Strategy", qui me semble adapté ici.

    Si ton application native ne s'utilise absolument pas sans internet pour avoir des informations, autant faire un site web, non ?
    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
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 345
    Par défaut
    J'ai envi de poser une question es-ce que les applications comme lequipe, eurosport etc.. peuvent être utilisé sans data ni wifi ? ou les applications comme guide michelin, lineternaute etc...

    Ce n'est pas un simple orderBy, car mon problème c'est que quand l'utilisateur choisi de modifier le critère de tri il a déjà un affichage par défault, une fois qu'il modifie le tri il faut que je relance la requête HTTP, qui avec un code différent ne fera pas la même requête que le choix par défault.

    L'autre solution serait donc de stocker les informations que je récupère de la BDD MySQL dans une BDD SQL Lite comme ça les accès suivant seront plus rapide ?

    Mais dans ce cas je n'ai aucune idée de comment faire.

  6. #6
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 243
    Par défaut
    Il faut que tu synchronises ta base de données MySQL avec la base de données tu téléphone.

    Dans ton cas c'est simple, puisque l'utilisateur ne peut pas envoyer de donner.
    Une solution simple, ce serait d'ajouter dans tes tables un champ qui contient la date à laquelle la ligne à été entrée.

    De cette façon, à chaque démarrage de l'application, si le téléphone est connecté à internet, pour chaque table t'appelles un web service (en lui donnait la MAX(date) de la table) et si des entrées on été modifié ou ajouté tu les récupéreras.

    Bon par contre si il est possible que des entrées soient supprimé dans la base, ça peut devenir plus compliqué.

    Le plus simple ce serait encore d'avoir un champ boolean dans chaque table pour dire si l'entrée existe ou pas.

    Bon j'ai mal expliqué, mais faudrait avoir plus d'infos aussi.

Discussions similaires

  1. vc++6 try catch gestion des exceptions..
    Par eomer212 dans le forum Visual C++
    Réponses: 2
    Dernier message: 27/01/2011, 00h12
  2. Gestion des erreurs avec le try catch
    Par shaun_the_sheep dans le forum Général Java
    Réponses: 8
    Dernier message: 03/03/2010, 10h22
  3. Gestion des exceptions imbriquée dans des Try et boucle
    Par Droïde Système7 dans le forum Débuter
    Réponses: 7
    Dernier message: 13/01/2010, 18h30
  4. Gestion des exeptions (try catch) en Java
    Par EIN-LESER dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 21/05/2008, 19h51
  5. [TSMDBGrid] Gestion des critères de tri
    Par Laurent Dardenne dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/02/2007, 14h13

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