glhu Posted March 2, 2010 Share Posted March 2, 2010 Bonjour, Ma question est en rapport au probleme classique de communication entre activite. Mon application utilise une base de donnee SQLite. J'ai donc implemente' mon propre SQLiteHelper. Pour visualiser les donnees, j'utilise une ListView avec un adapter derivant de CursorAdapter. Les donnees s'affichent bien comme je le souhaite, pas de problemes particulier. Lorsque l'on 'click' sur un item de la liste, une deuxieme activity est lancee pour afficher les details de l'item selectionne'. Mon probleme est comment recuperer les donnees de l'item dans la base pour les afficher dans ma deuxieme activity. Je vois a priori trois solutions: 1/ Si j'en crois le bouquin des tutoriaux de M.Murphy, il ne s'embete pas et cree pour sa deuxieme activity une deuxieme instance de son SQLiteHelper (en appellant getWritableDatabase()). Soit. Mais j'avoue *qu'a priori*, ca me gene un peu de d'instancier une deuxieme fois un SQLiteHelper alors que j'en ai deja un qui roupille en attendant (celui de ma ListActivity). 2/ Je pensais donc pouvoir envoyer dans l'Intent qui lance ma 2eme activity une reference a` ma premiere activity (pour acceder a` la base et autres donnees contextuelles), mais je ne vois rien qui se prete au passage de reference dans les Intent. Suis-je passer a` cote' ? 3/ Recuperer les donnees de l'item dans ma premiere activity, les stocker en extra dans l'Intent, et lancer ma deuxieme activity qui les recuperera ensuite dans son onCreate a` partir de l'Intent Pour vous, quelle est donc l'approche a` suivre dans ce cas on-ne-peut plus classique (afficher les donnees d'un item d'une liste dans une activity 'Detail') ? En particulier, concernant l'option 1/, est-ce un faux-probleme que je me pose (encore une fois, c'est l'approche suivie dans les tutoriaux de Marc Murphy) ? Merci pour votre aide Patrick Quote Link to comment Share on other sites More sharing options...
popolbx Posted March 2, 2010 Share Posted March 2, 2010 si tu ne veux pas reinstancier ton sqlhelper, envoie le dans l'intent (plutot que d'envoyer une ref à ton activity) moi je ne m'embeterai pas et je le réinstancierai Quote Link to comment Share on other sites More sharing options...
Alocaly Posted March 2, 2010 Share Posted March 2, 2010 Moi, je recrée le sqlHelper dans mes activités qui en ont besoin. En quoi est-ce vraiment génant ? Pour les perfs ?? Sinon, une autre solution serait sans doute de créer le sqlHelper dans l'application... Emmanuel / Alocaly Quote Link to comment Share on other sites More sharing options...
glhu Posted March 3, 2010 Author Share Posted March 3, 2010 Merci a` vous deux pour vos reponses. Comme je le disais, c'est peut-etre (et surement apparemment vu vos reponses a` tous les deux) un faux probleme que je me pose :) Mon hesitation vient surtout des resources qu'impliquerait (c'est totalement subjectif, je n'ai pas regarde') la creation d'un SQLiteHelper (ouverture d'une db, creation de cursor supplementaires, etc.). Bon, je vais donc opter pour cette solution pour le moment. Merci ! Patrick Quote Link to comment Share on other sites More sharing options...
ChrOnOs Posted March 17, 2010 Share Posted March 17, 2010 Pourquoi ne pas instancier simplement l'objet SQLiteHelper en public static sur l'activité principale... Bon je sais c'est pas très propres mais ça a le mérite d'économiser des ressources. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.