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 :

Base de données - filtre à l'aide d'un Spinner


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur MOA SI
    Inscrit en
    Novembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur MOA SI
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 17
    Par défaut Base de données - filtre à l'aide d'un Spinner
    Bonjour à tous,

    je fait appel à vous car je suis coincé sur un de mes codes :

    Je cherche à faire un filtre sur ma base de données en fonction de la valeur d'un spinner.

    J'ai réussi à faire ce filtre avec des variables intégrées directement dans le code java :

    Code java : 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
    17
    	public List<Bibliotheque> GetLivre() {
    
    		String annee = "2012";
    		
    		// Récupération des livres en fonction de l'année et du type
    		Cursor cursor = maBDD.query(BibliothequeOpenHelper.BIBLIOTHEQUE_TABLE_NAME,
    				new String[] { BibliothequeOpenHelper.COLUMN_ID,
    						BibliothequeOpenHelper.COLUMN_LIVRE,
    						BibliothequeOpenHelper.COLUMN_AUTEUR,
    						BibliothequeOpenHelper.COLUMN_ANNEE,
    						BibliothequeOpenHelper.COLUMN_TYPE},
    						BibliothequeOpenHelper.COLUMN_ANNEE + "=?" + " and "
    						 + BibliothequeOpenHelper.COLUMN_TYPE + "=?", new String[] {annee, "roman"},
    						null, null, null);
    	
    		return ConvertCursorToListObject(cursor);
    	}

    Grâce au code ci-dessus (dans mon fichier BilbliothequeRepository.java), j'arrive bien à retourner le filtre en fonction des infos que j’intègre directement dans le code.


    Maintenant, j'ai fait une activité à part où j'ai intégré deux spinners. J'aimerai faire un filtre sur la base de données en fonction de la sélection du spinner.

    J'ai essayé quelque chose de ce type :

    Code java : 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
    17
    18
    	public List<Bibliotheque> GetLivre() {
    
    		//String annee = "2012";
    		String spinner = String.valueOf(spinner2.getSelectedItem());
    		
    		// Récupération des livres en fonction de l'année et du type
    		Cursor cursor = maBDD.query(BibliothequeOpenHelper.BIBLIOTHEQUE_TABLE_NAME,
    				new String[] { BibliothequeOpenHelper.COLUMN_ID,
    						BibliothequeOpenHelper.COLUMN_LIVRE,
    						BibliothequeOpenHelper.COLUMN_AUTEUR,
    						BibliothequeOpenHelper.COLUMN_ANNEE,
    						BibliothequeOpenHelper.COLUMN_TYPE},
    						BibliothequeOpenHelper.COLUMN_ANNEE + "=?" + " and "
    						 + BibliothequeOpenHelper.COLUMN_TYPE + "=?", new String[] {spinner, "roman"},
    						null, null, null);
    	
    		return ConvertCursorToListObject(cursor);
    	}
    -> Et donc avec ça, ça ne fonctionne pas.

    Auriez-vous une solution ? Pouvez-vous me guider pour réaliser cette fonctionnalité ?

    Merci d'avance.

    Codialement

  2. #2
    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
    -> Et donc avec ça, ça ne fonctionne pas.
    C'est à dire "ça ne fonctionne pas" ?
    Ça crash ?
    La liste est vide ?
    La liste n'est pas filtrée ?

    Quelle est la valeur de "spinner" ?
    Quelle est la valeur renvoyée par "spinner2.getSelectedItem())" ? (type?)

    Attention aux noms de fonction: Le nom d'une fonction devrait toujours commencer par une minuscule... Seules les constantes et noms de types peuvent commencer par une majuscule.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur MOA SI
    Inscrit en
    Novembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur MOA SI
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 17
    Par défaut
    Salut,

    L'application crash.

    Le spinner contient des valeur d'année (2012, 2011...). Ce que je veux c'est donc filtrer sur la bibliothèque les livres d'une année x grâce au spinner.

    En tout cas merci pour cette réponse.

    Voici le LogCat :

    09-20 08:33:28.709: W/dalvikvm(856): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
    09-20 08:33:28.969: E/AndroidRuntime(856): FATAL EXCEPTION: main
    09-20 08:33:28.969: E/AndroidRuntime(856): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.proto1/com.example.proto1.Selection}: java.lang.NullPointerException
    09-20 08:33:28.969: E/AndroidRuntime(856): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
    09-20 08:33:28.969: E/AndroidRuntime(856): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
    09-20 08:33:28.969: E/AndroidRuntime(856): at android.app.ActivityThread.access$600(ActivityThread.java:141)
    09-20 08:33:28.969: E/AndroidRuntime(856): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
    09-20 08:33:28.969: E/AndroidRuntime(856): at android.os.Handler.dispatchMessage(Handler.java:99)
    09-20 08:33:28.969: E/AndroidRuntime(856): at android.os.Looper.loop(Looper.java:137)
    09-20 08:33:28.969: E/AndroidRuntime(856): at android.app.ActivityThread.main(ActivityThread.java:5041)
    09-20 08:33:28.969: E/AndroidRuntime(856): at java.lang.reflect.Method.invokeNative(Native Method)
    09-20 08:33:28.969: E/AndroidRuntime(856): at java.lang.reflect.Method.invoke(Method.java:511)
    09-20 08:33:28.969: E/AndroidRuntime(856): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    09-20 08:33:28.969: E/AndroidRuntime(856): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    09-20 08:33:28.969: E/AndroidRuntime(856): at dalvik.system.NativeStart.main(Native Method)
    09-20 08:33:28.969: E/AndroidRuntime(856): Caused by: java.lang.NullPointerException
    09-20 08:33:28.969: E/AndroidRuntime(856): at com.example.proto1.VetementRepository.GetJean(VetementRepository.java:80)
    09-20 08:33:28.969: E/AndroidRuntime(856): at com.example.proto1.Selection.onCreate(Selection.java:24)
    09-20 08:33:28.969: E/AndroidRuntime(856): at android.app.Activity.performCreate(Activity.java:5104)
    09-20 08:33:28.969: E/AndroidRuntime(856): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
    09-20 08:33:28.969: E/AndroidRuntime(856): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
    09-20 08:33:28.969: E/AndroidRuntime(856): ... 11 more

  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
    Il suffit donc de lire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Caused by: java.lang.NullPointerException
    09-20 08:33:28.969: E/AndroidRuntime(856): at com.example.proto1.VetementRepository.GetJean(VetementRepository.java:80)
    Fichier VetementRepository.java, ligne 80, dans la fonction GetJean (attention aux noms !!!) de la classe VetementRepository

    Il y a une utilisation d'une référence nulle.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur MOA SI
    Inscrit en
    Novembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur MOA SI
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2012
    Messages : 17
    Par défaut
    Donc si je comprend bien c'est la valeur renvoyée par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String spinner = String.valueOf(spinner2.getSelectedItem());
    qui est nulle ?

    Je précise, le spinner2 est à la base sur une autre activité.

  6. #6
    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
    oO

    Comment peux tu partager une view d'une activité à une autre... outre les problèmes de mémoire que cela peut engendrer, une activité DOIT être self-contained (c'est à dire capable de se débrouiller seule).

    Pourquoi ne pas passer la VALEUR du spinner2 de l'activité précédente à celle-ci ?

Discussions similaires

  1. [MySQL] probleme de liaison avec ma base de donnes a l'aide d'un formulaire php
    Par ibuto dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/05/2011, 20h10
  2. Comment exporter une base de donnée oracle à l'aide de EXP
    Par med_anis_dk dans le forum Import/Export
    Réponses: 6
    Dernier message: 16/06/2006, 14h27
  3. Besoin d'aide sur la conception d'un base de données
    Par lordgodgiven dans le forum Modélisation
    Réponses: 1
    Dernier message: 01/10/2005, 16h51
  4. [VB.NET] filtre dans base de donnée
    Par speedtug dans le forum Windows Forms
    Réponses: 7
    Dernier message: 21/09/2005, 17h12
  5. aide pour exporter une base de donnée
    Par matt55 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 06/04/2004, 14h28

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