glhu Posté(e) 2 mars 2010 Share Posté(e) 2 mars 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 2 mars 2010 Share Posté(e) 2 mars 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Alocaly Posté(e) 2 mars 2010 Share Posté(e) 2 mars 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
glhu Posté(e) 3 mars 2010 Auteur Share Posté(e) 3 mars 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 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ChrOnOs Posté(e) 17 mars 2010 Share Posté(e) 17 mars 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. 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.