pyrro Posté(e) 1 juin 2010 Share Posté(e) 1 juin 2010 Bonjour, voila j'ai un petit problème avec mon enregistrement dans ma base de données, j'ai une classe ou je construit ma base de données, une classe principale et mon xml avec des edit text qui prend les données a rentrer dans la basse. Je rempli les champs et quand je click sur envoyer il me dit de fermer l'application dans la console debug il me dit qu'il y a un null pointer execption sur OnClick a la ligne 52 pourtant je ne comprend pas le problème. Est ce que quelqu'un aurait une solution ? merci d'avance voici mes classes: ------------------------------------------------------------------------------------------------------------------------------------------------------------- package com.google.android.bibax; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; public class bibax extends Activity { private BDAcces objBd; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.options_menu, menu); return true; } 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; } } ------------------------------------------------------------------------------------------------------------------------------------------------------------- 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 SQLiteOpenHelper 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); } } ------------------------------------------------------------------------------------------------------------------------------------------------------------- mon rapport debug : 06-01 18:09:40.063: ERROR/AndroidRuntime(210): Uncaught handler: thread main exiting due to uncaught exception 06-01 18:09:40.093: ERROR/AndroidRuntime(210): java.lang.NullPointerException 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.google.android.bibax.bibax$1.onClick(bibax.java:52) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.View.performClick(View.java:2364) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.View.onTouchEvent(View.java:4179) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.widget.TextView.onTouchEvent(TextView.java:6541) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.View.dispatchTouchEvent(View.java:3709) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.os.Handler.dispatchMessage(Handler.java:99) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.os.Looper.loop(Looper.java:123) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at android.app.ActivityThread.main(ActivityThread.java:4363) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at java.lang.reflect.Method.invokeNative(Native Method) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at java.lang.reflect.Method.invoke(Method.java:521) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 06-01 18:09:40.093: ERROR/AndroidRuntime(210): at dalvik.system.NativeStart.main(Native Method) Je ne voit donc vraiment pas mon problème si quelqu'un pourrait m'eclairer ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
rouis89 Posté(e) 23 juillet 2010 Share Posté(e) 23 juillet 2010 cbien se que vous avez fait ,est ce que tu peut m'aidée ,jé besoin du code pour la lecture des info de la BD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.