Bonjour à tous.
Je suis en train de découvrir le développement Android depuis maintenant 3 mois. Au niveau des IHM, pas de soucis, j'arrive a faire ce dont j'ai besoin.
Par contre je bloque un peu sur la BDD SQLITE intégré.
Donc je veux faire un truc tout simple. J'ai mon IHM avec un bouton. Quand je clique sur ce bouton j'ecris dans ma base de donnée.
Par la suite il faut que je verifie si l'ajout c'est bien effectuer avec des requete SQL dans l'ADB Shell.
Mais quand je clique sur mon bouton mon app plante dans la MV.
Voila le code et le logcat.
Activty Principale:
Classe Clients
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 package my.TUBDD.Visites; import android.app.Activity; import android.os.Bundle; public class TUBDDVisitesActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void save() { Clients cl = new Clients(1,"TEST"); cl.sauver(); } }
Et ma BDD
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 package my.TUBDD.Visites; import java.sql.Date; import java.sql.Time; import java.util.Calendar; import my.TUBDD.Visites.R; import my.TUBDD.Visites.SqiliteLocal; import android.app.Application; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class Clients extends Application { private int ID; private String nom; public Clients(int ID, String Nom ) { this.ID = ID; this.nom = Nom; } /** * base de données */ private SQLiteOpenHelper m_dbHelper; public void sauver() { // TODO Auto-generated method stub String mess="Reussi"; m_dbHelper = new SqiliteLocal(getApplicationContext()); SQLiteDatabase db = m_dbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("ID", ID); values.put("NOM", nom); try { db.insertOrThrow("CLIENTS", null, values); //insertion d'un enregistrement } catch (SQLException e) { mess ="Erreur insertion"; } Toast.makeText(getApplicationContext(),mess, Toast.LENGTH_SHORT).show(); } }
Voila 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 package my.TUBDD.Visites; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class SqiliteLocal extends SQLiteOpenHelper { private static final String DATABASE_NAME = "client.db"; private static final int DATABASE_VERSION = 1; private static final String CREATE_SQL = "CREATE TABLE CLIENT (" + "ID INTEGER PRIMARY KEY AUTOINCREMENT," + "NOM TEXT" + ");"; private static final String DROP_SQL = "DROP TABLE IF EXISTS CLIENTS;"; public SqiliteLocal(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { //db.openOrCreateDatabase db.execSQL(CREATE_SQL); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL(DROP_SQL); onCreate(db); } }
Merci d'avance a tous ce qui m'aideront.06-19 14:34:50.205: D/AndroidRuntime(578): Shutting down VM
06-19 14:34:50.215: W/dalvikvm(578): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
06-19 14:34:50.295: E/AndroidRuntime(578): FATAL EXCEPTION: main
06-19 14:34:50.295: E/AndroidRuntime(578): java.lang.IllegalStateException: Could not find a method save(View) in the activity class my.TUBDD.Visites.TUBDDVisitesActivity for onClick handler on view class android.widget.Button with id 'button1'
06-19 14:34:50.295: E/AndroidRuntime(578): at android.view.View$1.onClick(View.java:3031)
06-19 14:34:50.295: E/AndroidRuntime(578): at android.view.View.performClick(View.java:3511)
06-19 14:34:50.295: E/AndroidRuntime(578): at android.view.View$PerformClick.run(View.java:14105)
06-19 14:34:50.295: E/AndroidRuntime(578): at android.os.Handler.handleCallback(Handler.java:605)
06-19 14:34:50.295: E/AndroidRuntime(578): at android.os.Handler.dispatchMessage(Handler.java:92)
06-19 14:34:50.295: E/AndroidRuntime(578): at android.os.Looper.loop(Looper.java:137)
06-19 14:34:50.295: E/AndroidRuntime(578): at android.app.ActivityThread.main(ActivityThread.java:4424)
06-19 14:34:50.295: E/AndroidRuntime(578): at java.lang.reflect.Method.invokeNative(Native Method)
06-19 14:34:50.295: E/AndroidRuntime(578): at java.lang.reflect.Method.invoke(Method.java:511)
06-19 14:34:50.295: E/AndroidRuntime(578): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-19 14:34:50.295: E/AndroidRuntime(578): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-19 14:34:50.295: E/AndroidRuntime(578): at dalvik.system.NativeStart.main(Native Method)
06-19 14:34:50.295: E/AndroidRuntime(578): Caused by: java.lang.NoSuchMethodException: save [class android.view.View]
06-19 14:34:50.295: E/AndroidRuntime(578): at java.lang.Class.getConstructorOrMethod(Class.java:460)
06-19 14:34:50.295: E/AndroidRuntime(578): at java.lang.Class.getMethod(Class.java:915)
06-19 14:34:50.295: E/AndroidRuntime(578): at android.view.View$1.onClick(View.java:3024)
06-19 14:34:50.295: E/AndroidRuntime(578): ... 11 more
PS: Je ne suis vraiment pas douée en programmation, mais j'aimerais que au moins ça marche
Je sais que je suis pas loin mais je ne vois pas ce qu'il manque :/
Partager