Bonjour,
J'ai suivi le tutoriel Android du site sur la création du BDD SQLite, j'ai ensuite essayé de crée ma propre BDD pour mon programme mais voilà qu'un problème se pose à moi,
Pour commencer voilà ce que je souhaitais faire:
Un programme avec 6 editText dont 2 devais contenir du texte et 4 des données numériques, puis lors d'une pression sur "Valider" c'est 6donées devaient s'enregistrer dans ma BD.
Voilà ca c'est la théorie ! En effet j'ai créée tout ce qui est nécessaire pour faire ceci, et j'ai voulu faire un teste de la BDD en créant un TOAST avec les infos lorsque je clique sur "Valider", c'est la que tout bug !
Voilà mes différents codes (je débute en développement java/android donc si mon code n'est pas propre à 100% je m'en excuse)
Ma classe principale:
La classe Log:
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 package com.NavigLio.android.v1; import android.app.Activity; import android.content.res.Configuration; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.ImageButton; import android.widget.TableRow; import android.widget.TextView; import android.widget.Toast; public class NavigLio extends Activity { //Declaration //Variable graphique ImageButton ComValider; ImageButton ComAnuler; ImageButton ComInfo; EditText NomEtape; EditText Frequence; EditText AltitudeEtape; EditText MsaEtape; EditText RmEtape; EditText Distance; TextView Affichage; TableRow row; //Variable Programe.. private String VarNom; private String VarFreq; private String VarAlti; private String VarMsa; private String VarRm; private String VarDist; //Application started .. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //Definition des different objets .. ComValider = (ImageButton) findViewById(R.id.Valider); ComInfo = (ImageButton) findViewById(R.id.Info); ComAnuler = (ImageButton) findViewById(R.id.Annuler); NomEtape = (EditText) findViewById(R.id.TextNomEtape); Frequence = (EditText) findViewById(R.id.TextFrequence); AltitudeEtape = (EditText) findViewById(R.id.TextAltitudeEtape); MsaEtape = (EditText) findViewById(R.id.TextMsa); RmEtape = (EditText) findViewById(R.id.TextRm); Distance = (EditText) findViewById(R.id.TextDist); row = (TableRow) findViewById(R.id.row); //Attribution d'un tiroir par objets .. //Tiroir d'annulation ComAnuler.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { NomEtape.setText(""); Frequence.setText(""); AltitudeEtape.setText(""); MsaEtape.setText(""); RmEtape.setText(""); Distance.setText(""); } }); ComValider.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { VarNom = NomEtape.getText().toString(); VarFreq = Frequence.getText().toString(); VarAlti = AltitudeEtape.getText().toString(); VarMsa = MsaEtape.getText().toString(); VarRm = RmEtape.getText().toString(); VarDist = Distance.getText().toString(); CreateLog(); } }); } protected void CreateLog() { //Création d'une instance de ma classe LivresBDD LogBDD logBdd = new LogBDD(this); //Ici je fait un teste avec des Valeur deja defini ! Log log = new Log("Texte 1", "Texte2", 10, 20, 30, 40); //On ouvre la base de données pour écrire dedans logBdd.open(); //On insère le livre que l'on vient de créer logBdd.insertLivre(log); //Pour vérifier que l'on a bien créé notre livre dans la BDD //on extrait le livre de la BDD grâce au titre du livre que l'on a créé précédemment Log logFromBdd = logBdd.getLivreWithTitre(log.getNom()); //Si un livre est retourné (donc si le livre à bien été ajouté à la BDD) if(logFromBdd != null){ //On affiche les infos du livre dans un Toast Toast.makeText(this, logFromBdd.toString(), Toast.LENGTH_LONG).show(); } logBdd.close(); } }
La classe LogBDD:
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 package com.NavigLio.android.v1; public class Log { private int id; private String nom; private String frequence; private int altitude; private int msa; private int rm; private int dist; public Log(){} public Log(String nom, String frequence, int altitude, int msa, int rm, int dist){ this.nom = nom; this.frequence = frequence; this.altitude = altitude; this.msa = msa; this.rm = rm; this.dist = dist; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getFrequence() { return frequence; } public void setFrequence(String frequence) { this.frequence = frequence; } public int getAltitude() { return altitude; } public void setAltitude(int altitude) { this.altitude = altitude; } public int getMsa() { return msa; } public void setMsa(int msa) { this.msa = msa; } public int getRm() { return rm; } public void setRm(int rm) { this.rm = rm; } public int getDist() { return dist; } public void setDist(int dist) { this.dist = dist; } public String toString(){ return "ID : "+id+"Nom : "+nom+"\nFréquence : "+frequence+"\nAltitude : "+altitude+" Msa : "+msa+"\nRm : "+rm+" Distance : "+dist; } }
Et enfin la classe MaBaseSQLite:
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 package com.NavigLio.android.v1; public class Log { private int id; private String nom; private String frequence; private int altitude; private int msa; private int rm; private int dist; public Log(){} public Log(String nom, String frequence, int altitude, int msa, int rm, int dist){ this.nom = nom; this.frequence = frequence; this.altitude = altitude; this.msa = msa; this.rm = rm; this.dist = dist; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; } public String getFrequence() { return frequence; } public void setFrequence(String frequence) { this.frequence = frequence; } public int getAltitude() { return altitude; } public void setAltitude(int altitude) { this.altitude = altitude; } public int getMsa() { return msa; } public void setMsa(int msa) { this.msa = msa; } public int getRm() { return rm; } public void setRm(int rm) { this.rm = rm; } public int getDist() { return dist; } public void setDist(int dist) { this.dist = dist; } public String toString(){ return "ID : "+id+"Nom : "+nom+"\nFréquence : "+frequence+"\nAltitude : "+altitude+" Msa : "+msa+"\nRm : "+rm+" Distance : "+dist; } }
Et je vois pas pourquoi cela ne marche pas ... puisque le tuto marche ...
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 package com.NavigLio.android.v1; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; public class MaBaseSQLite extends SQLiteOpenHelper { private static final String TABLE_LOG = "table_log"; private static final String COL_ID = "ID"; private static final String COL_NOM = "nom"; private static final String COL_FREQ = "frequence"; private static final String COL_ALTI = "altitude"; private static final String COL_MSA = "msa"; private static final String COL_RM = "rm"; private static final String COL_DIST = "dist"; private static final String CREATE_BDD = "CREATE TABLE " + TABLE_LOG + " (" + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_NOM + " TEXT NOT NULL, " + COL_FREQ + " TEXT NOT NULL, " + COL_ALTI + " TEXT NOT NULL, " + COL_MSA + " TEXT NOT NULL " + COL_RM + " TEXT NOT NULL " + COL_DIST + "TEXT NOT NULL);"; public MaBaseSQLite(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { //on crée la table à partir de la requête écrite dans la variable CREATE_BDD db.execSQL(CREATE_BDD); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //On peut faire ce qu'on veut ici moi j'ai décidé de supprimer la table et de la recréer //comme ça lorsque je change la version les id repartent de 0 db.execSQL("DROP TABLE " + TABLE_LOG + ";"); onCreate(db); } }
Merci d'avance pour votre aide !
Flyer-74
Partager