Bonjour,
je débute en android, et j'ai acheter le livre de Nazim Benbourahla sur Android 7.
Parmi les codes qu'il présente, un m’intéresse particulièrement pour mon projet, c'est l'utilisation de la base sqlite.(Chap 12 de son livre).
Il créé une classe appelé chapitre, le SQLiteOpenHelper, et une classe agissant sur la base (ajout, update, delete, get).
J'arrive à faire fonctionner son exemple, que j'ai repris en modifiant les classes (afin de coller à mon projet), et il récupère (moi aussi) correctement la liste total (via un toString) des données de la base.
Cependant, il donne aussi une méthode pour récupéré un enregistrement de la table.
Mais, il ne fait pas d'exemple avec, et c'est justement ici que je n'arrive pas à saisir...
Voici un extrait de son code qui tourne aussi chez moi :
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
public ArrayList<Chapitre> getAllChapters() {
		Cursor c = bdd.query(TABLE_CHAPITRES, new String[] { COL_ID, COL_NAME,
				COL_DESC }, null, null, null, null, COL_NAME);
		if (c.getCount() == 0) {
			c.close();
			return null;
		}
		ArrayList<Chapitre> chapterList = new ArrayList<Chapitre> ();
		while (c.moveToNext()) {
			Chapitre chapter = new Chapitre();
			chapter.setId(c.getInt(NUM_COL_ID));
			chapter.setName(c.getString(NUM_COL_NAME));
			chapter.setDescription(c.getString(NUM_COL_DESC));
			chapterList.add(chapter);
		}
		c.close();
		return chapterList;
	}
Et dans l'activité :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 ArrayList<Chapitre> chapterList = chapitreBdd.getAllChapters();
        chapitreBdd.close();
        ArrayAdapter<Chapitre> adapter = new ArrayAdapter<Chapitre>(this, android.R.layout.simple_list_item_1, chapterList);
        list.setAdapter(adapter);
Moi, je veux utiliser cette partie de son 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
public Chapitre getChapter(String name) {
		Cursor c = bdd.query(TABLE_CHAPITRES, new String[] { COL_ID, COL_NAME,
				COL_DESC }, COL_NAME + " LIKE \"" + name + "\"", null, null,
				null, COL_NAME);
		return cursorToChapter(c);
	}
 
	public Chapitre cursorToChapter(Cursor c) {
		if (c.getCount() == 0) {
			c.close();
			return null;
		}
		Chapitre chapter = new Chapitre();
		chapter.setId(c.getInt(NUM_COL_ID));
		chapter.setName(c.getString(NUM_COL_NAME));
		chapter.setDescription(c.getString(NUM_COL_DESC));
		c.close();
		return chapter;
	}
Je fais donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
Chapitre chapter = new Chapitre();
chapter=chapitreBdd.getChapter("Chapitre1");
TextView tv1=(TextView) findViewById(R.id.textView1);
tv1.setText(chapter.getName());
Et là, le drame, l'appli se vautre au démarrage sur mes 2 appareils....
Je pense que je me goure certainement dans l’utilisation des classes ou autre, mais où ??
Merci de votre aide, et si Mr Benbourahla passe par là, merci de son aide aussi...