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 :

insérer un objet dans un spinner


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 141
    Par défaut insérer un objet dans un spinner
    Bonjour,

    est ce que c'est possible d'insérer un objet dans un spinner?

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ClasseObjet variableObjet
    Si oui, comment faire?

    Merci

    edit: la création de ces objets sont basé directement de ce tutoriel
    http://a-renouard.developpez.com/tut...ndroid/sqlite/

  2. #2
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2010
    Messages : 16
    Par défaut
    je suis pas sur qu'on peut parler de notion d'objets ici, mais pour remplir un spinner il te faut un ArrayAdapter qui sera créer depuis les ressources de ton application.

    voila un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    final Spinner monspinner = (Spinner) findViewById(R.id.monSpinner);
     
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    				this, R.array.contenudemonspinner_array, android.R.layout.simple_spinner_item);
    		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    		monspinner.setAdapter(adapter);

  3. #3
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Par défaut
    Oui c'est possible! Il suffit de savoir ce que tu veux afficher dans ton spinner (un string, ...).

    Pour cela, il faut créer un ArrayList de string comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ArrayList<String> list = new ArrayList<String> ();
    list.add(monObjet1.nom);
    list.add(monObjet2.nom);
    list.add(monObjet3.nom);
    où monObjet est ton objet et nom est un attribut de type string de ton objet.

    Ensuite, il suffit d'utiliser un array adapter comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,
    					android.R.layout.simple_spinner_item, listist);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    Spinner spinner = (Spinner) findViewById (R.id.monSpinner);
    spinner.setAdapter (adapter);
    Lire aussi ces excellents cours et tutoriels Android : http://android.developpez.com/cours/

    Et voila

  4. #4
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    Tu peux peupler un spinner à partir une liste d'objets de la classe ClasseObjet dans le mesure où tu définis l'adaptateur et le layout customisé qui vont avec, pour pouvoir faire :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ArrayList<ClasseObjet> list = new ArrayList<ClasseObjet> ();
    list.add(monObjet1);
    list.add(monObjet2);
    list.add(monObjet3);
     
    ArrayAdapter<ClasseObjet > adapter = new ArrayAdapter<ClasseObjet > (this,
    					R.layout.mon_super_spinner, listist);
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 141
    Par défaut
    Merci pour tous vos postes et pour les cours Android.
    mais comment prendre de manière automatique la liste de tous les objets? (oui, je sais c'est de la programmation objet de base ma question)


    J'ai éssayé une autre voie cette après-midi via un curseur de prendre directement la liste depuis la base de données sans repasser par un objet. Sans succès. voici un exemple du code
    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
    17
    18
    19
    20
    21
    22
     
    //apellé depuis une classe
    	public Cursor getDescription(){
    		//Récupère dans un Cursor les valeurs correspondant à un oi type type contenu dans la BDD (ici on sélectionne le oi type type grâce à son titre)
    		Cursor c = bdd.query(ConstSql.TABLE_TYPE, new String[] {ConstSql.COL_ID, ConstSql.COL_DESCRIPTION},null, null, null, null, null);
    		return c;
    	}
     
    //appelé depuis une autre classe
    //ouverture de la base de données
    OITypeBDD oiTypeBdd = new OITypeBDD(this);
    		      oiTypeBdd.open();		
                            //methode permettant d'appeler la description citée plus haut et de remplir les données
    			Cursor curseur = oiTypeBdd.getDescription();
    			 if(curseur == null)
    				 Toast.makeText(getApplicationContext(), "Il n'y a pas de données", Toast.LENGTH_LONG).show();
    			 else{
    				 Toast.makeText(getApplicationContext(), "Il y a des données", Toast.LENGTH_LONG).show();
    				  SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,  
    		                   android.R.layout.simple_spinner_item, curseur ,
    		                   new String[] {ConstSql.COL_ID, ConstSql.COL_DESCRIPTION}, new int[] { android.R.id.text1,android.R.id.text2 });
    				 spinP902.setAdapter(adapter);
    il me dit que la colonne _id n'existe pas. Normal, je ne l'ai jamais crée ni appelée. (j'appelle les colonnes id et description).
    edit: voici la variable id qui est appellée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public static final  String COL_ID = "id";

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 141
    Par défaut
    problème résolu.


    Quand on fait un select avec cette méthode sur sqlite, il faut appeller "rowid _id" avec les autres champs.
    Ce champs est automatiquement créer pour pouvoir résoudre ce genre de bug.


    P.s: Si ça ne se voit pas, je suis très content d'avoir enfin résolu ce bug. Merci beaucoups pour le coups de main

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

Discussions similaires

  1. [ArrayList] Comment insérer des objet dans ArrayList
    Par jean1979 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 13/10/2011, 11h42
  2. Insérer un Objet dans un document Word
    Par benstile dans le forum VBScript
    Réponses: 5
    Dernier message: 14/09/2010, 12h52
  3. [JNDI] comment insérer de nouveaux objets dans notre annuaire LDAP
    Par julien1981 dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 23/06/2006, 15h07
  4. Insérer un objet dans un canvas : possible ?
    Par gedeon555 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 04/06/2006, 14h42
  5. Insérer un tableau d'objet dans un Jpanel
    Par Flophx dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 25/04/2006, 20h37

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