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 :

SQLite / Cursor / ListView / Adapter


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Par défaut SQLite / Cursor / ListView / Adapter
    Bonjour,

    Je tente depuis plusieurs jours à créer une application dans laquelle je puisse afficher une Listview dans laquelle est affichée des nom/prénom/poste/email/tel de personnes. Et ensuite pouvoir cliquer sur un des item pour voir la fiche détaillée de cette personne.
    J'ai réussi à créer la bdd et la table. Mais je bloque sur l'affichage de la vue (ListView) notamment avec la partie adapter/cursor que je n'ai pas compris.

    Si quelqu'un pouvait m'aider, je lui en serais très reconnaissant.

    Voici mes différentes Activity:

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public class MaBaseSQLite extends SQLiteOpenHelper {
     
    	private static final String TABLE_EMPLOYES = "table_employes";
     
    	private static final String COL_ID = "ID";
    	private static final String COL_NOM = "Nom";
    	private static final String COL_PRENOM = "Prenom";
    	private static final String COL_ROLE = "Role";
    	private static final String COL_POSTE = "Poste";
    	private static final String COL_TELEPHONE = "Telephone";
    	private static final String COL_EMAIL = "Email";
     
    	private static final String REQUETE_CREATION_BD = "CREATE TABLE " + TABLE_EMPLOYES + " ("
    	+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_NOM + " TEXT NOT NULL, "
    	+ COL_PRENOM + " TEXT, " + COL_ROLE + " TEXT NOT NULL, " + COL_POSTE + " TEXT NOT NULL, " + COL_TELEPHONE + " TEXT, "
    	+ COL_EMAIL + " TEXT);";
     
    	public MaBaseSQLite(Context context, String name, CursorFactory cursorfactory, int version) {
    		super(context, name, cursorfactory, version);
    	}
     
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		//on créé la table à partir de la requête écrite dans la variable CREATE_BDD
    		db.execSQL(REQUETE_CREATION_BD);
    	}
     
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    		db.execSQL("DROP TABLE" + TABLE_EMPLOYES + ";");
    		onCreate(db);
    	}	
    }
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    public class Employe {
    	//création du constructeur ainsi que des getter et des setter
     
    	private int id;
    	private String nom;
    	private String prenom;
    	private String telephone;
    	private String poste;
    	private String role;
    	private String email;
     
    	public Employe(){}
     
    	public Employe(String nom, String prenom, String telephone, String poste, String role, String email){
    		this.nom = nom;
    		this.prenom = prenom;
    		this.telephone = telephone;
    		this.poste = poste;
    		this.role = role;
    		this.email = email;
    	}
     
     
    	//id
    	public int getId() {
    		return id;
    	}
     
    	public void setId(int id) {
    		this.id = id;
    	}
     
     
    	//nom
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
     
    	//prenom
    	public String getPrenom() {
    		return prenom;
    	}
     
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}	
     
    	//telephone
    	public String getTelephone() {
    		return telephone;
    	}
     
    	public void setTelephone(String telephone) {
    		this.telephone = telephone;
    	}	
     
    	//poste
    	public String getPoste() {
    		return poste;
    	}
     
    	public void setPoste(String poste) {
    		this.poste = poste;
    	}
     
    	//role
    	public String getRole() {
    		return role;
    	}
     
    	public void setRole(String role) {
    		this.role = role;
    	}	
     
    	//email
    	public String getEmail() {
    		return email;
    	}
     
    	public void setEmail(String email) {
    		this.email = email;
    	}
     
     
    	public String toString(){
    		return "ID : "+id+"\nNOM : "+nom+"\nPRENOM : "+prenom+"\nTELEPHONE : "+telephone+"\nPOSTE : "
    				+poste+"\nROLE : "+role+"\nEMAIL : "+email;
    	}
    }
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    public class EmployesBDD {
     
    		//permet de gérer l’insertion, la suppression, la modification des employes dans la BDD et de faire des requêtes pour récupérer un employé contenu dans la BDD
     
    	/*
    	 * création d'une couche d'abstraction afin de proposer des méthodes d'accès et de manipulation simplifiées à la bbd
    	 * et d'apporter une indépendance vis-à-vis de la source de données. Si, par ex, on souhaite changer de type de source, 
    	 * et travailler avec des services internet ou des fichiers, alors il ne faudra changer que le code de cette 
    	 * classe d'abstraction
    	 */
     
    		private static final int VERSION_BDD = 1;
    		private static final String NOM_BDD = "ditimi.db";
     
    		private static final String TABLE_EMPLOYES = "table_employes";
     
    		private static final String COL_ID = "ID";
    		private static final int NUM_COL_ID = 0;
    		private static final String COL_NOM = "Nom";
    		private static final int NUM_COL_NOM = 1;
    		private static final String COL_PRENOM = "Prenom";
    		private static final int NUM_COL_PRENOM = 2;
    		private static final String COL_ROLE = "Role";
    		private static final int NUM_COL_ROLE = 3;
    		private static final String COL_POSTE = "Poste";
    		private static final int NUM_COL_POSTE = 4;
    		private static final String COL_TELEPHONE = "Telephone";
    		private static final int NUM_COL_TELEPHONE = 5;
    		private static final String COL_EMAIL = "Email";
    		private static final int NUM_COL_EMAIL = 6;
     
     
    		//l'instance de la bdd qui sera manipulée au travers de cette classe
    		private SQLiteDatabase bdd;
     
    		private MaBaseSQLite maBaseSQLite;
     
    		public EmployesBDD(Context context){
    			//On créer la BDD et sa table
    			maBaseSQLite = new MaBaseSQLite(context, NOM_BDD, null, VERSION_BDD);
    		}
     
     
    		//on ouvre la BDD en écriture
    		public SQLiteDatabase open(){
    			bdd = maBaseSQLite.getWritableDatabase();
    			return bdd;
    		}
     
    		//on ferme l'accès à la BDD
    		public void close(){
    			bdd.close();
    		}
     
     
    		public SQLiteDatabase getBDD(){
    			return bdd;
    		}
     
    		//récupère un employé en fonction de son nom
    		public Employe getEmploye(String nom) {
    			Cursor c = bdd.query(TABLE_EMPLOYES, new String[]{
    					COL_ID, COL_NOM, COL_PRENOM, COL_POSTE, COL_ROLE, COL_EMAIL, COL_TELEPHONE},
    					null, null, null, COL_NOM + " LIKE " + nom, null);
    			return cursorToEmploye(c);
    		}
     
    		//récupère un employé en fonction de son id
    		public Employe getEmploye(int id) {
    			Cursor c = bdd.query(TABLE_EMPLOYES, new String[]{
    					COL_ID, COL_NOM, COL_PRENOM, COL_POSTE, COL_ROLE, COL_EMAIL, COL_TELEPHONE},
    					null, null, null, COL_ID + " LIKE " + id, null);
    			return cursorToEmploye(c);
    		}
     
    		//supprime un employé à partir de son id (normalement boolean au lieu de int ?)
    		public int removeEmployeWithID(int id){
    			//Suppression d'un employé de la BDD grâce à l'ID
    			return bdd.delete(TABLE_EMPLOYES, COL_ID + " = " +id, null);
    		}
     
    		//la méthode cursorToEmployes permet de transformer le curseur de résultat en objet métier
    		private Employe cursorToEmploye (Cursor c) {
    			//si la requête ne renvoie pas de résultat
    			if (c.getCount() == 0)
    				return null;
     
    			Employe retEmploye = new Employe();
    			//extraction des valeurs depuis le curseur
    			retEmploye.setId(c.getInt(NUM_COL_ID));
    			retEmploye.setNom(c.getString(NUM_COL_NOM));
    			retEmploye.setPrenom(c.getString(NUM_COL_PRENOM));
    			retEmploye.setRole(c.getString(NUM_COL_ROLE));
    			retEmploye.setPoste(c.getString(NUM_COL_POSTE));
    			retEmploye.setTelephone(c.getString(NUM_COL_TELEPHONE));
    			retEmploye.setEmail(c.getString(NUM_COL_EMAIL));
    			//ferme le curseur pour libérer les ressources
    			c.close();
    			return retEmploye;
    		}
     
    		//retourne tous les employés de la bdd
    		public ArrayList<Employe> getAllEmploye(){
    			Cursor c = bdd.query(TABLE_EMPLOYES, new String[]{
    					COL_ID, COL_NOM, COL_PRENOM, COL_POSTE, COL_ROLE, COL_EMAIL, COL_TELEPHONE},
    					null, null, null, null, null);
    			return cursorToEmployes(c);
    		}
     
     
    		private ArrayList<Employe> cursorToEmployes(Cursor c) {
    			//si la requête ne renvoie pas de résultat
    			if (c.getCount() == 0)
    				return new ArrayList<Employe>(0);
     
    			ArrayList<Employe> retEmployes = new ArrayList<Employe>(c.getCount());
    			c.moveToFirst();
    			do {
    				Employe employe = new Employe();
    				employe.setId(c.getInt(NUM_COL_ID));
    				employe.setNom(c.getString(NUM_COL_NOM));
    				employe.setPrenom(c.getString(NUM_COL_PRENOM));
    				employe.setRole(c.getString(NUM_COL_ROLE));
    				employe.setPoste(c.getString(NUM_COL_POSTE));
    				employe.setTelephone(c.getString(NUM_COL_TELEPHONE));
    				employe.setEmail(c.getString(NUM_COL_EMAIL));
    				retEmployes.add(employe);
    			} while (c.moveToNext());
    			//ferme le curseur pour libérer les ressources
    			c.close();
    			return retEmployes;
    		}
     
     
    		//insérer un employé dans la table des employés (code en {} à vérifier)
    		public long insertEmploye(Employe employe){
    			//Création d'un ContentValues (fonctionne comme une HashMap)
    			ContentValues values = new ContentValues();
    			//on lui ajoute une valeur associé à une clé (qui est le nom de la colonne dans laquelle on veut mettre la valeur)
    			values.put(COL_NOM, employe.getNom());
    			values.put(COL_PRENOM, employe.getPrenom());
    			values.put(COL_ROLE, employe.getRole());
    			values.put(COL_POSTE, employe.getPoste());
    			values.put(COL_TELEPHONE, employe.getTelephone());
    			values.put(COL_EMAIL, employe.getEmail());
    			//on insère l'objet dans la BDD via le ContentValues
    			return bdd.insert(TABLE_EMPLOYES, null, values);
    		}
     
     
    		//mettre à jour un employé dans la table des employés (code en {} à vérifier)
    		public int updateEmploye(int id, Employe employeToUpdate){
    			//La mise à jour d'un employé dans la BDD fonctionne plus ou moins comme une insertion
    			//il faut simple préciser quel employé on doit mettre à jour grâce à l'ID
    			ContentValues values = new ContentValues();
    			values.put(COL_NOM, employeToUpdate.getNom());
    			values.put(COL_PRENOM, employeToUpdate.getPrenom());
    			values.put(COL_ROLE, employeToUpdate.getRole());
    			values.put(COL_POSTE, employeToUpdate.getPoste());
    			values.put(COL_TELEPHONE, employeToUpdate.getTelephone());
    			values.put(COL_EMAIL, employeToUpdate.getEmail());
    			return bdd.update(TABLE_EMPLOYES, values, COL_ID + " = " +id, null);
    		}
     
     
    		//je ne sais pas si je dois laisser cette dernière partie dans cette activity
     
    		private class MaBaseSQLIte extends SQLiteOpenHelper {
     
    			public MaBaseSQLIte(Context context, String name,
    					CursorFactory cursorfactory, int version) {
    				super(context, name, cursorfactory, version);
    				// TODO Auto-generated constructor stub
    			}
     
    			@Override
    			public void onCreate(SQLiteDatabase db) {
    				// TODO Auto-generated method stub
     
    			}
     
    			@Override
    			public void onUpgrade(SQLiteDatabase db, int oldVersion,
    					int newVersion) {
    				// TODO Auto-generated method stub
     
    			}
     
     
    		}
     
    	}
    et ma classe d'affichage dans laquelle j'ai testé de grands nombres de possiblité d'adpater/cursor

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    public class DicSqlActivity extends ListActivity {
     
    	private EmployesBDD employeBdd;
    	private static final String TABLE_EMPLOYES = "table_employes";
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            //Création d'une instance de ma classe EmployesBDD
            employeBdd = new EmployesBDD(this);
     
            //On ouvre la base de données pour écrire dedans
            employeBdd.open();      
     
    	}
     
       /*     
    //j'amagine que je dois mettre mon cursor ici, voici une des bêtises que j'ai écrit
            
        public ArrayList<Employe> getAllEmploye(){
        	return getAllEmploye();
        }
    */
     
     
        @Override
        protected void onDestroy()
        {
            if (employeBdd != null)
            {
            	employeBdd.close();
            }
            super.onDestroy();
        }
    }
    Je ne comprends pas comment afficher les résultats dans cette activity
    J'ai tenté pleins de choses pour finalement revenir en arrière pour comprendre ce que je fais et réussir à afficher ma listview. Sans résultat.

    Je suis un peu perdu. J'espère que l'un d'entre vous pourra m'aider. J'espère que la méthode de travail choisi (séparation en plusieurs class) est utile et judicieuse.

    Merci.

  2. #2
    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
    Il te manque un "adapter" pour injecter les données (ici, issues d'une bdd) dans ta listview, qui manque aussi. Tout ce que tu as codé pour l'instant c'est uniquement l'aspect "données" avec :
    - un helper SQLite
    - un POJO (Employee)
    - un DAO
    - Une activité qui ouvre puis ferme la bdd. Pas très utile donc.
    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

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Par défaut
    merci pour tes remarques et tes explications.

    Voici un des adapters que j'ai tenté mais rien ne s'affiche à part mon fond blanc. Je n'ai pas d'erreur dans le LogCat.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
      public class DicSqlActivity extends ListActivity {
     
    	private EmployesBDD employeBdd;
    	private static final String TABLE_EMPLOYES = "table_employes";
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            //Création d'une instance de ma classe EmployesBDD
            employeBdd = new EmployesBDD(this);
     
            //On ouvre la base de données pour écrire dedans
            employeBdd.open();      
     
    	}
     
        	public ArrayList<Employe> getAllEmploye(){
        		ArrayList<Employe> employes = employeBdd.getAllEmploye();
     
     
                Cursor c = (Cursor) employeBdd.getAllEmploye();
                startManagingCursor(c);
                //pour mettre un autre élément, rajouter un textview dans list ?
                SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.list, c, new String[]{"nom"+"prenom"},new int[]{R.id.tv01});
     
     
                //this.setListAdapter(adapter);
                getListView().setAdapter(adapter);
    			return employes;
        }
     
     
        @Override
        protected void onDestroy()
        {
            if (employeBdd != null)
            {
            	employeBdd.close();
            }
            super.onDestroy();
        }
    }
    J'ai également un fichier main.xml
    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
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
     
    	<ListView android:id="@android:id/list" android:background="@android:color/white"
    		android:layout_width="fill_parent" android:layout_height="fill_parent"></ListView>
     
    	    <TextView
            android:id="@+id/tv01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
     
    </LinearLayout>

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Par défaut
    Après moultes recherches, je pense comprendre que je dois créer un modèle d'adapteur personnalisé. Voilà ce que j'ai fait :

    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
    public class MyCustomAdapter extends BaseAdapter {
     
    public int getCount() {
    return 0;
    }
     
    public Object getItem(int arg0) {
    return null;
    }
     
    public long getItemId(int position) {
    return 0;
    }
     
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    	// TODO Auto-generated method stub
    	return null;
    }
    }
    Mais je reste toujours au même point. Je ne comprends pas comment afficher ma ListView dans mon activity principale ... malgré tout ce code

    Je me complique la vie ? Je ne vois pas une chose toute simple ?

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 154
    Par défaut
    J'ai choisis de me concentrer sur mon activity principale. J'ai crée une méthode DataBind et voici le 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public class DicSqlActivity extends ListActivity {		
     
    	EmployesBDD employeBdd;
     
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            getListView().setAdapter((ListAdapter) this);
     
            //Création d'une instance de ma classe EmployesBDD
            employeBdd = new EmployesBDD(this);
     
            //On ouvre la base de données pour écrire dedans
            employeBdd.open();    		
     
            //méthode pour placer tous les employés dans la listview
            DataBind();
    	}	
     
        public void DataBind(){
        	Cursor c = (Cursor) employeBdd.getAllEmploye();
        	startManagingCursor(c);
        	SimpleCursorAdapter adapter = new SimpleCursorAdapter(
        			this,
        			R.layout.list,
        			c, 
        			new String[]{"Nom", "Prenom", "Role","Telephone","Email"},
        			new int[]{R.id.textNom, R.id.textPrenom, R.id.textRole, R.id.textTelephone,R.id.textEmail});
        	setListAdapter(adapter);
     
        }
    Malheureusement j'ai une erreur sur cette ligne que je n'arrive pas à résoudre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cursor c = employeBdd.getAllEmploye();
    J'ai une croix rouge et si je place ma souris dessus j'ai comme message
    Type mismatch: cannot convert from ArrayList<Employe> to Cursor
    L'un d'entre vous voit-il mon erreur ?

  6. #6
    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
    L'erreur parle d'elle-même, non ? :s

    Tu essayes de mettre une valeur de ArrayList dans une variable déclarée en Cursor. Vu que les 2 classes n'ont aucun rapport, il te sort cette erreur.
    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. listview + adapter
    Par lartisan dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 12/04/2014, 09h19
  2. SQLite cursor select android
    Par PetitGregory dans le forum Android
    Réponses: 2
    Dernier message: 03/07/2013, 15h40
  3. ListView adapter passage de variable
    Par freaks dans le forum Composants graphiques
    Réponses: 9
    Dernier message: 08/11/2012, 11h35
  4. Réponses: 4
    Dernier message: 14/02/2011, 12h25
  5. Réponses: 6
    Dernier message: 09/04/2009, 11h55

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