Bonjour à tous,
Je suis un jeune développeur sur Android ( moins d'1 mois ) et j'ai encore du mal à comprendre malgré les différents tutoriels regardés comment se passe l'utilisation de sqlite sur mobile.
J'ai créé un projet ayant pour objectif la réalisation de quizz mais je me retrouve bloqué sur la gestion des données de ma base de données.
Pour faire simple mon application propose la possibilité de pouvoir créer des quizzs, de les modifier, de les supprimer et bien évidemment d'y jouer.
Mes questions vont un peu porter sur chaque point.
1. Pour jouer : je rentre par du code des quizzs dans ma base de données et je souhaiterai que mes quizzs soit afficher dans une listView contenant chaque quizz.
Pour le moment j'ai cet affichage qui correspond à ce que je souhaite mais les données sont justes des données de quizz que je rentre à la main et non les noms des quizzs dans ma base de données :
Code Quizz : 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 public class Quizz_Database { private int id; private int numQuizz; private String nomQuizz; private int numQuestion; private String question; private String reponse; private int repJuste; public Quizz_Database(){} public Quizz_Database(int numQuizz, String nomQuizz, int numQuestion, String question, String reponse, int repJuste){ this.numQuizz=numQuizz; this.nomQuizz=nomQuizz; this.numQuestion=numQuestion; this.question=question; this.reponse=reponse; this.repJuste=repJuste; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getNumQuizz(){ return numQuizz; } public void setNumQuizz(int numQuizz) { this.numQuizz=numQuizz; } public String getNomQuizz(){ return nomQuizz; } public void setNomQuizz(String nomQuizz) { this.nomQuizz=nomQuizz; } public int getNumQuestion(){ return numQuestion; } public void setNumQuestion(int numQuestion) { this.numQuestion=numQuestion; } public String getQuestions(){ return question; } public void setQuestion(String question) { this.question=question; } public String getReponse() { return reponse; } public void setReponse(String reponse) { this.reponse=reponse; } public int getRepJuste() { return repJuste; } public void setRepJuste(int repJuste) { this.repJuste=repJuste; } public String toString(){ return "ID : "+id+"\nnumQuizz : "+numQuizz+"\nnomQuizz : "+nomQuizz+"\nnumQuestion : "+numQuestion+"\nquestion : "+question+"\nreponse : "+reponse+"\nrepJuste : "+repJuste; } }
Code Quizz_DAO : 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 import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; public class Quizz_Database_DAO { private static final String DATABASE_NAME = "quizz.db"; private static final int DATABASE_VERSION = 1; private static final String QUIZZ_TABLE_NAME = "quizz"; private static final String QUIZZ_KEY = "id"; private static final int QUIZZ_NUM_COL_KEY = 0; private static final String QUIZZ_IDQUIZZ = "idQuizz"; private static final int QUIZZ_NUM_COL_IDQUIZZ = 1; private static final String QUIZZ_NAMEQUIZZ = "nomQuizz"; private static final int QUIZZ_NUM_COL_NAMEQUIZZ = 2; private static final String QUIZZ_NUMQUESTION = "numQuestion"; private static final int QUIZZ_NUM_COL_NUMQUESTION = 3; private static final String QUIZZ_QUESTION = "question"; private static final int QUIZZ_NUM_COL_QUESTION = 4; private static final String QUIZZ_REPONSE = "reponse"; private static final int QUIZZ_NUM_COL_REPONSE = 5; private static final String QUIZZ_REP_JUSTE = "repJuste"; private static final int QUIZZ_NUM_COL_REP_JUSTE = 6; private SQLiteDatabase db; private Quizz_Database_Methode maBaseSQLite; public Quizz_Database_DAO(Context context){ maBaseSQLite = new Quizz_Database_Methode(context, DATABASE_NAME, null, DATABASE_VERSION); } public void open(){ db = maBaseSQLite.getWritableDatabase(); } public void close(){ db.close(); } public SQLiteDatabase getDb(){ return db; } public long insertQuizz(Quizz_Database quizz){ ContentValues values = new ContentValues(); values.put(QUIZZ_IDQUIZZ, quizz.getNumQuizz()); values.put(QUIZZ_NAMEQUIZZ, quizz.getNomQuizz()); values.put(QUIZZ_NUMQUESTION, quizz.getNumQuestion()); values.put(QUIZZ_QUESTION, quizz.getQuestions()); values.put(QUIZZ_REPONSE, quizz.getReponse()); values.put(QUIZZ_REP_JUSTE, quizz.getRepJuste()); return db.insert(QUIZZ_TABLE_NAME, null, values); } public long updateQuizz(int id, Quizz_Database quizz){ ContentValues values = new ContentValues(); values.put(QUIZZ_IDQUIZZ, quizz.getNumQuizz()); values.put(QUIZZ_NAMEQUIZZ, quizz.getNomQuizz()); values.put(QUIZZ_NUMQUESTION, quizz.getNumQuestion()); values.put(QUIZZ_QUESTION, quizz.getQuestions()); values.put(QUIZZ_REPONSE, quizz.getReponse()); values.put(QUIZZ_REP_JUSTE, quizz.getRepJuste()); return db.update(QUIZZ_TABLE_NAME, values, QUIZZ_KEY + "=" + id, null); } public int removeQuizzWithID(int id){ return db.delete(QUIZZ_TABLE_NAME, QUIZZ_KEY + "=" + id, null); } public Quizz_Database getQuizzWithName(String name){ Cursor c = db.query(QUIZZ_TABLE_NAME, new String[] {QUIZZ_KEY, QUIZZ_IDQUIZZ, QUIZZ_NAMEQUIZZ, QUIZZ_NUMQUESTION, QUIZZ_QUESTION, QUIZZ_REPONSE, QUIZZ_REP_JUSTE}, QUIZZ_NAMEQUIZZ + "LIKE \"" + name + "\"", null, null, null, null); return cursorToQuizz(c); } public Quizz_Database cursorToQuizz(Cursor c){ if(c.getCount() == 0) return null; c.moveToFirst(); Quizz_Database quizz = new Quizz_Database(); quizz.setNumQuizz(c.getInt(QUIZZ_NUM_COL_IDQUIZZ)); quizz.setNomQuizz(c.getString(QUIZZ_NUM_COL_NAMEQUIZZ)); quizz.setNumQuestion(c.getInt(QUIZZ_NUM_COL_NUMQUESTION)); quizz.setQuestion(c.getString(QUIZZ_NUM_COL_QUESTION)); quizz.setReponse(c.getString(QUIZZ_NUM_COL_REPONSE)); quizz.setRepJuste(c.getInt(QUIZZ_NUM_COL_REP_JUSTE)); c.close(); return quizz; } }
Code SQLite : 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 import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class Quizz_Database_Methode extends SQLiteOpenHelper{ private static final String QUIZZ_TABLE_NAME = "quizz"; private static final String QUIZZ_KEY = "id"; private static final String QUIZZ_IDQUIZZ = "idQuizz"; private static final String QUIZZ_NAMEQUIZZ = "nomQuizz"; private static final String QUIZZ_NUMQUESTION = "numQuestion"; private static final String QUIZZ_QUESTION = "question"; private static final String QUIZZ_REPONSE = "reponse"; private static final String QUIZZ_REP_JUSTE = "repJuste"; private static final String QUIZZ_TABLE_DROP = "DROP TABLE IF EXISTS " + QUIZZ_TABLE_NAME + ";"; private static final String QUIZZ_TABLE_CREATE = "create table " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + " integer primary key autoincrement, " + QUIZZ_IDQUIZZ + " integer not null" + QUIZZ_NAMEQUIZZ + " text not null, " + QUIZZ_NUMQUESTION + " integer not null, " + QUIZZ_QUESTION + " text not null, " + QUIZZ_REPONSE + " text not null, " + QUIZZ_REP_JUSTE + " integer not null, )"; public Quizz_Database_Methode(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(QUIZZ_TABLE_CREATE); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '1', 'Le diable de Tasmanie vit dans la jungle du Brésil.', 'Vrai', '0')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '1', 'Le diable de Tasmanie vit dans la jungle du Brésil.', 'False', '1')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '2', 'La sauterelle saute l équivalent de 200 fois sa taille.', 'Vrai', '1')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '2', 'La sauterelle saute l équivalent de 200 fois sa taille.', 'Faux', '0')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '3', 'Les pandas hibernent.', 'Vrai', '0')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '3', 'Les pandas hibernent.', 'False', '1')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '4', 'On trouve des dromadaires en liberté en Australie.', 'Vrai', '1')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '4', 'On trouve des dromadaires en liberté en Australie.', 'Faux', '0')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '5', 'Le papillon monarque vole plus de 4000 km.'), 'Vrai', '1')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '5', 'Le papillon monarque vole plus de 4000 km.'), 'Faux', '0')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '6', 'Les gorilles mâles dorment dans les arbres.', 'Vrai', '0')"); db.execSQL("INSERT INTO " + QUIZZ_TABLE_NAME + "( " + QUIZZ_KEY + ", " + QUIZZ_IDQUIZZ + ", " + QUIZZ_NAMEQUIZZ + ", " + QUIZZ_NUMQUESTION + ", " + QUIZZ_QUESTION + ", " + QUIZZ_REPONSE + ", " + QUIZZ_REP_JUSTE + ") VALUES ('1', 'Test1', '6', 'Les gorilles mâles dorment dans les arbres.', 'Faux', '1')"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){ db.execSQL(QUIZZ_TABLE_DROP); onCreate(db); } }
Code Jouer : 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 import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class Quizz_Jouer extends AppCompatActivity { ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.quizz_jouer_liste); mListView = (ListView) findViewById(R.id.listView); afficherListeQuizz(); } private List<Quizz_Jouer_Affichage> genererQuizz(){ List<Quizz_Jouer_Affichage> afficheQuizz = new ArrayList<>(); afficheQuizz.add(new Quizz_Jouer_Affichage(Color.BLACK, "Quizz_1", "Score pour ce quizz : 0")); afficheQuizz.add(new Quizz_Jouer_Affichage(Color.BLUE, "Quizz_2", "Score pour ce quizz : 0")); afficheQuizz.add(new Quizz_Jouer_Affichage(Color.GREEN, "Quizz_3", "Score pour ce quizz : 0")); afficheQuizz.add(new Quizz_Jouer_Affichage(Color.RED, "Quizz_4", "Score pour ce quizz : 0")); afficheQuizz.add(new Quizz_Jouer_Affichage(Color.GRAY, "Quizz_5", "Score pour ce quizz : 0")); return afficheQuizz; } private void afficherListeQuizz(){ List<Quizz_Jouer_Affichage> afficheListQuizz= genererQuizz(); Quizz_Jouer_Adapter adapter = new Quizz_Jouer_Adapter(Quizz_Jouer.this, afficheListQuizz); mListView.setAdapter(adapter); } }
Je vois déjà que la taille de mon message est énorme alors pour ne pas faire fuir tous ceux qui auront eu le courage de lire jusque là, je demanderai mes autres questions une fois que j'aurai des réponses pour ici
En vous remerciant.
Bonne soirée
Partager