Invité Posté(e) 25 janvier 2010 Share Posté(e) 25 janvier 2010 (modifié) bonsoir à tous, je developpe mon application dans le cadre de ma formation. Je vais devoir présenter mon travail dans une dizaine de jours, donc je vais travailler dessus le plus possible :) j'ai commencé à implémenter l'utilisation d'une Base de Données. Modifié 26 janvier 2010 par Goten44 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 26 janvier 2010 Share Posté(e) 26 janvier 2010 Bonjour, j'ai fini ma classe d'acces à la Base de données ... et ca marche pas .... :mad: voila ma classe : import android.content.ContentValues; import android.content.Context; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteQueryBuilder; import android.util.Log; public class BDAcces { // ATTRIBUTS private Context myContext ; private DatabaseHelper myDatabaseHelper ; private SQLiteDatabase myDatabase ; private static final String TAG = "BDAccess"; // pour le log (pas important) // CONSTRUCTEUR DE MA CLASSE public BDAcces(Context ctx) { this.myContext = ctx; } // NOM DE LA BASE DE DONNEES private static final String DATABASE_NAME = "db_liste_courses"; // NOM DES TABLES private static final String ARTICLE_TABLE = "article"; // VERSION DE LA BDD private static final int DATABASE_VERSION = 1; // CREATION DES TABLES DE LA BDD // Table ARTICLE private static final String CREATE_ARTICLE_TABLE ="CREATE TABLE article(" +"id_article BIGINT PRIMARY KEY AUTOINCREMENT," +"nom_article VARCHAR(100) NOT NULL," +"quantite_article VARCHAR(10) NOT NULL," +")"; // remplir Table ARTICLE private static final String FILL_ARTICLE_TABLE = "INSERT INTO article('nom_article', 'quantite_article') VALUES('carottes', '15') ;" ; // Classe DATABASEHELPER private static class DatabaseHelper extends SQLiteOpenHelper { //ouverture ou creation de la base si elle n'existe pas public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override // methode qui est appelé quand on ouvre la bas pour la première fois public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_ARTICLE_TABLE); db.execSQL(FILL_ARTICLE_TABLE); } @Override //methode permettant une lis aà jour de notre pas de donné public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS "+ARTICLE_TABLE); onCreate(db); } } public void open() throws SQLException { myDatabaseHelper = new DatabaseHelper(myContext); myDatabase = myDatabaseHelper.getWritableDatabase(); } public void close() { myDatabaseHelper.close(); } public long insertArticle(String nom_article, String quantite_article) { ContentValues initialValues = new ContentValues(); initialValues.put("nom_larecette", nom_article); initialValues.put("recette_larecette", quantite_article); return myDatabase.insert(ARTICLE_TABLE, null, initialValues); } } dans mon ACTIVITY , je crée une instance de cette classe. et quand je fait "monInstance.open() ;" ou "monInstance.close() ;" ca plante .... :mad: pouvez vous m'aider ? merci beaucoup !!! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 26 janvier 2010 Share Posté(e) 26 janvier 2010 (modifié) // ==> Lisez le EDIT en bas ... :| J'ai beau retourner le problème dans tous les sens, je ne trouve pas la solution ... j'ai lu sur un forum qu'il faut changer la DATABASE_VERSION lors de sa modification ... mais doit-on le faire lors de la modification de la structure des Tables ou lors de l'ajout ou la suppression de données ... ? je commence à craquer .... :rolleyes: pouvez vous m'expliquer comment construire une classe (la plus basique possible) de base de données ... ? (après avoir compris la construction d'une telle classe, je pourrais construire une classe pour mon appli avec mes données ...) ce que j'ai compris c'est qu'il fallait ca : (comme squelette) (mais tout ce que j'ai tenté après ca à échoué ... package com.test; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; public class Bdd extends SQLiteOpenHelper { private static final String DATABASE_NAME = "db_name"; private static final String ARTICLE_TABLE = "table_name"; private static int DATABASE_VERSION = 1; public Bdd(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version ); } @Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } EDIT : J'ai viré mes requetes SQL et cela fonctionne ... (fonctionne dans le sens que jarrive a ouvrir et fermer la connexion à la BDD) Je ne comprend pas encore pourquoi mais c'était ma requetea SQL de création qui faisait planter l'appli ... (déjà , je vais mieux dormir cette nuit) Modifié 26 janvier 2010 par Goten44 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 29 janvier 2010 Share Posté(e) 29 janvier 2010 Bonjour à tous, J'ai repris presque tout mon code ... c'est maintenant beaucoup plus propre. :) j'ai écrit un cursorAdapter personalisé (pour lister mes articles). et j'arrive à ajouter des articles à ma BDD (des carottes :cool: ) et j'arrive à liste la table "article" de ma BDD dans mon activity lors du lancement de cette dernière. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 31 janvier 2010 Share Posté(e) 31 janvier 2010 Bonjour, Alors mon appli avance tranquillement ... - Je liste les articles au lancement de l'appli - J'affiche un "Dialog" de saisie et lors que la validation du dialog, j'enregistre la saisie dans la BDD - quand cet enregistrement a lieu, le dialog disparait (avec la méthode Dismiss() ) et je retombe sur mon Activity principale - Mon problème : je n'arrive pas à actualiser mon Activity principale lorsque le dialog disparait J'ai fait une méthode REFRESH() dans mon activity, mais je n'arrive pas à faire en sorte qu'elle soit appellée quand le dialog disparait. :| Dans la documentation, j'ai trouvé OnDismissListener ... mais j'ai beau essayer, je ne comprend pas comment cela fonctionne... Est ce que quelqu'un à déjà fait ca ? et pourrait m'expliquer ? :| merci beaucoup !!! ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 1 février 2010 Share Posté(e) 1 février 2010 J'ai enfin réussi à faire mon rafraichissement ;) Donc j'avance de nouveau à bonne allure :D D'ici peu de temps je vous proposerai une build en téléchargement ;) (une version débuggée de l'appli en développement) Vous pourrez ainsi vous faire une idée de l'avancement et de la tournure que prend l'appli :D Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
slevin Posté(e) 4 février 2010 Share Posté(e) 4 février 2010 Bien joué, ça avance bien. Pour le moment j'ai pas trop le temps de travailler sur android mais ce week-end je m'y remet. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 4 février 2010 Share Posté(e) 4 février 2010 merci beaucoup ! :D c'est en partie grâce à toi que j'en suis arrivé là ;) Je vais essayer de finir la 1ère version de mon appli ce weekend ;) bon courage à toi ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 11 février 2010 Share Posté(e) 11 février 2010 Bonsoir à tous, La première version de mon application est presque terminée... mais il reste un détail a régler et je n'arrive pas à trouve la solution. Je veux afficher un Context Menu quand on fait un appui long sur les elements de la liste. et que ce menu affiche MODIFIER et SUPPRIMER. j'arrive a afficher ce menu, j'ai fait une fonction qui supprime un élément... mais je ne comprend pas comment faire pour identifier l'élément sur lequel a été fait l'appui long ... merci de votre lecture :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 16 février 2010 Share Posté(e) 16 février 2010 Bon j'ai finalement trouvé comment faire ... voila la 1ere beta de mon application : http://www.megaupload.com/?d=BI5KV9UB c'est tout juste développé et debuggué ... les foncions principales fonctionnent mais dans le menu en bas il y a 2 cases qui ne font rien ... (réactiver les produits et preferences) c'est fonctions seront dans la prochaines version. Merci de laisser vos commentaires et avis :D !! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.