Bonjour, voila j'ai une base de donnée et je souhaite rentrer les données de mon formulaire xml dedans mais au moment d'envoyer il me mes un nullpointerexception sur mon onclick, malgré sa je n'arrive pas a résoudre mon problème est ce que quelqu'un aurais une idée ? merci d'avance
voici mon rapport d'erreur logcat:
06-03 17:10:32.344: ERROR/AndroidRuntime(229): Uncaught handler: thread main exiting due to uncaught exception
06-03 17:10:32.374: ERROR/AndroidRuntime(229): java.lang.NullPointerException
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at com.google.android.bibax.bibax$1.onClick(bibax.java:52)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.view.View.performClick(View.java:2364)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.view.View.onTouchEvent(View.java:4179)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.widget.TextView.onTouchEvent(TextView.java:6541)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.view.View.dispatchTouchEvent(View.java:3709)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.os.Handler.dispatchMessage(Handler.java:99)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.os.Looper.loop(Looper.java:123)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at android.app.ActivityThread.main(ActivityThread.java:4363)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at java.lang.reflect.Method.invokeNative(Native Method)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at java.lang.reflect.Method.invoke(Method.java:521)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
06-03 17:10:32.374: ERROR/AndroidRuntime(229): at dalvik.system.NativeStart.main(Native Method)
--------------------------------------------------------------------------
ma base de donnée:
--------------------------------------------------------------------------
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 package com.google.android.bibax; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.content.ContentValues; import android.database.SQLException; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class BDAcces { // variable bdd private static final String CHICHA_TABLE = "chicha"; private static final String DATABASE_NAME = "chicha_android"; private static final int DATABASE_VERSION = 1; //requete creation bdd private static final String CREATE_CHICHA_TABLE ="CREATE TABLE chicha (" +"nom_chicha TEXT NO NULL," +"numero_chicha INTEGER(10) NOT NULL," +"codepostal_chicha INTEGER (5) NOT NULL," +"ville_chicha TEXT (50) NOT NULL," +"adresse_chicha VARCHAR(500) NOT NULL," +"prix_chicha VARCHAR(10000) NOT NULL," +"description_chicha LONGTEXT NOT NULL," +")"; //je rajoute également trois attributs private final Context mCtx; //contient les information sur l'environnement de mon application //class permettant de manager la creation,et la mise à jur de notre base public BDAcces(Context ctx) { this.mCtx = ctx; } private DatabaseHelper mDbHelper; //class d'action sur notre base private SQLiteDatabase mDb; private static final String TAG = "BDAcces"; //J'ai vais maintenant créer ma classe DatabaseHelper qui est une extension de <a href="http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html">SQLiteOpenHelper</a> private static class DatabaseHelper extends SQLiteOpenHelper { DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION);//ouverture ou creation de la base si elle n'existe pas } @Override // methode qui est appelé quand on ouvre la base pour la première fois public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_CHICHA_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//methode permettant une mise à jour de notre base de donnée Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS "+CHICHA_TABLE); onCreate(db); } } public void open() throws SQLException //ouvre l'acces à la base de donnée { mDbHelper = new DatabaseHelper(mCtx); mDb = mDbHelper.getWritableDatabase(); } public void close() //ferme l'accès à la base de donnée { mDbHelper.close(); } public long insertchicha(String sNomChicha, String sNumeroChicha, String sCodePostalChicha, String sVilleChicha, String sAdresseChicha, String sPrixChicha, String sDescriptionChicha ) //insere un nouveau contenu { ContentValues initialValues = new ContentValues(); initialValues.put("nom_chicha", sNomChicha); initialValues.put("numero_chicha", sNumeroChicha); initialValues.put("codepostal_chicha", sCodePostalChicha); initialValues.put("ville_chicha", sVilleChicha ); initialValues.put("adresse_chicha", sAdresseChicha ); initialValues.put("prix_chicha", sPrixChicha ); initialValues.put("description_chicha", sDescriptionChicha ); return mDb.insert(CHICHA_TABLE, null, initialValues); } }
ma classe principale :
--------------------------------------------------------------------------
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 public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.item01: //int i = 1; this.setContentView(R.layout.consultationbase); return true; case R.id.item02: //int j = 1; this.setContentView(R.layout.enregistrementbase); Button buttonenvoyertable = (Button) findViewById(R.id.button_envoyertable); final TextView nomchicha = (TextView) findViewById(R.id.edit_nom); final TextView numerochicha = (TextView) findViewById(R.id.edit_numero); final TextView codepostalchicha = (TextView) findViewById(R.id.edit_codepostal); final TextView villechicha = (TextView) findViewById(R.id.edit_ville); final TextView adressechicha = (TextView) findViewById(R.id.edit_adresse); final TextView prixchicha = (TextView) findViewById(R.id.edit_prix); final TextView descriptionchicha = (TextView) findViewById(R.id.edit_description); buttonenvoyertable.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { objBd.open();//connexion à ma base de donnée String sNomChicha = nomchicha.getText().toString();//récupération du nom String sNumeroChicha = numerochicha.getText().toString(); String sCodePostalChicha = codepostalchicha.getText().toString(); String sVilleChicha = villechicha.getText().toString(); String sAdresseChicha = adressechicha.getText().toString(); String sPrixChicha = prixchicha.getText().toString(); String sDescriptionChicha = descriptionchicha.getText().toString(); long bresult = objBd.insertchicha(sNomChicha, sNumeroChicha,sCodePostalChicha, sVilleChicha, sAdresseChicha, sPrixChicha, sDescriptionChicha);//enregistrement dans ma base de données String resultsring = new Long(bresult).toString() ;//conversion du résultat en Type String pour pouvoir l'affiché nomchicha.setText(resultsring);//affichage du résultat de notre requete dans le champ contenu de la recette numerochicha.setText(resultsring); codepostalchicha.setText(resultsring); villechicha.setText(resultsring); adressechicha.setText(resultsring); prixchicha.setText(resultsring); descriptionchicha.setText(resultsring); objBd.close();//fermeture de ma base de données ;} }); return true; case R.id.item03: //int i = 1; this.setContentView(R.layout.jeux); return true; } return false; } }
ps : les edit_xxxx sont les edittext de mon xml
merci d'avance de votre aide
cordialement
Partager