Jump to content
Profete162

TabActivity et Base de données.

Recommended Posts

Salut le monde.

J'utilise pour le moment une TabActivity ( A) qui dans ses 2 onglets, contient les activités B et C.

Dans l'activité B, j'ai une liste d'élément fixes, et quand je clique sur les éléments de la liste, je veux les rajouter à la BD

Et l'activité C affiche les éléments sur lesquels j'ai cliqué.

(c'est un modèle très simplifié)

J'ai essayé toutes les possibilités posibles, donc j'aimerais savoir laquelle utiliser.

1) mon DbAdapter est dans l'activité A ( TabActivity)

J'ai donc ce bout de code dans A:

   mDbHelper = new NotesDbAdapter(this);
  mDbHelper.open();

et dans le code de B, sur un click:

A.mDbHelper.createFav(blabla);

en dans le code C, pour créer le cursorAdapter:

mCursor=A.mDbHelper.fetchAllFav();

Le petit couac, c'est que l'activité C n'affiche pas directement les éléments. Je dois quitter l'activité principale A et quand je reviens dedans tout s'affiche bien.

Il est à noter que dans mon premier "voyage" de l'onglet B vers l'onglet C, tout est actualisé si j'avais clické, les élements sont bien présents. Et ensuite, plus rien ne s'actualisera!

1) 2 DbAdapter dans les activités B et C ( TabActivity)

.

ca me semble tres mauvais comme idée non?

J'ai essayé aussi, mais c'est pas le top, c'est encore pire.

Des idées/ propositions?

Merci d'avance.

Profete

Edited by Profete162

Share this post


Link to post
Share on other sites

Quelques pensées à la lecture de ton problème... à pondérer par le fait que je n'ai pas encore moi-même réllement mis en pratique les accès bases de données ni de TabActivity :

- Que tes activités B et C passent par une référence à A pour accéder aux données ne me semble pas être une super idée par rapport au cycle de vie des Activity. J'ai peur qu'il y ait un risque de conserver des références à A alors que le système pourra potentiellement l'avoir détruite... quoi que cela impliquerait que B et C le soient également... bof je ne sais pas mais intuitivement ca me fait tiquer

- Je ne vois pas pourquoi l'idée d'avoir un DBAdapter dans B et C serait mauvaise, au contraire cela me semblerait plus sûr par rapport au point précédent.

- A quel moment dans ton activité C as-tu implanté la récupération du contenu de la base ? Il faut s'arranger, je pense, pour aller la consulter à chaque fois que l'activité C revient au premier plan, donc d'après http://developer.android.com/images/activity_lifecycle.png dans le onResume().

Share this post


Link to post
Share on other sites
- Je ne vois pas pourquoi l'idée d'avoir un DBAdapter dans B et C serait mauvaise, au contraire cela me semblerait plus sûr par rapport au point précédent..

C'est ce que j'ai fait, mais il semble y avoir des problèmes.

Je peux rajouter un élément dans la base de donnée depuis l'activité B et fermer la BD, si je switche d'onglet pour aller dans la C et que je parcours la BD, il n'affiche pas l'élément que je viens juste de rajouter!!!

Pour que ca fonctionne, je dois quitter l'activité TabActivity A et la relancer. C'est très bizarre.

Share this post


Link to post
Share on other sites

Effectivement, c'est bien cela.

J'étais habitué à mes activités qui se ferment et repasse par un oncreate() chaque fois que je passe d'une fenêtre à l'autre.

Avec le tabactity, elles se mettent en veillent et reprennent au onresume! Un point pour Kevin!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.






×
×
  • Create New...