Hhugues Posted October 8, 2009 Share Posted October 8, 2009 (edited) Bonjour, Cela fait quelques jours maintenant que je n'arrive pas à réousdre un problème tout bête, mais dont je ne trouve pas de solution évidente. Voici le contexte : On est sur l'écran de sélection (on s'en fout de quoi) et à un moment on clique sur un bouton qui lance un public class NouvelleEntree extends Dialog implements OnClickListener Donc en gros on a une fenêtre de dialogue qui est lancée. Par la suite l'utilisateur va rentrer deux choses dans les textView prévus à cet effet. Une fois cette tâche effectuée il va cliquer un bouton sauvegarder et le tout va être enregistré dans une base SQL. Mais là où ça se corse c'est que juste après la fermeture de cette boîte de dialogue j'ai besoin de mettre à jour l'activity qui a créé le dialog. Et là je bloque... Quand le Dialog est créé elle ne se met pas en pause à ma connaissance (enfin dites moi si je me trompe), donc pas de onResume(), onStart() de configurable. Je ne peux pas utiliser de choses en static. Il faudrait donc que je trouve un moyen de détecter la fermeture de cette boîte de dialogue et de mettre à jour juste après. Merci pour votre aide ! PS : c'est sûrement très facile Edited October 9, 2009 by Hhugues Quote Link to comment Share on other sites More sharing options...
popolbx Posted October 8, 2009 Share Posted October 8, 2009 utilise une activity et pas un dialog. du coup au retour de l activity tu a un OnActivityResult...... Quote Link to comment Share on other sites More sharing options...
Fluckysan Posted October 8, 2009 Share Posted October 8, 2009 J'ajoute que si tu as choisis la Dialog pour son look, tu peux donner un thème à ton Activity qui la fera ressembler à une Dialog ;) Dans ton Layout XML : android:theme="@android:style/Theme.Dialog" Quote Link to comment Share on other sites More sharing options...
Hhugues Posted October 8, 2009 Author Share Posted October 8, 2009 Ok je vais tenter ça. En fait ça me gêne de faire 40 activities pour au final ne faire pratiquement rien par acitivity (mis à part quelques unes). Merci Quote Link to comment Share on other sites More sharing options...
Alocaly Posted October 9, 2009 Share Posted October 9, 2009 Je comprends pas trop ton probleme... Tu n'as pas un bouton 'OK' ( ou dans ton cas 'Sauvegarder' ) avec du code dedans que tu appelles quand tu as fini de bosser avec ta dialog box ? Tu ne peux pas appeler une methode de l'activité dans le onClick de ta dialog ? Ou sinon, tu as aussi la possibilité de rajouter un dismiss listener, et/ou un cancel listener si tu as aussi des choses à gérer dans le cancel... J'ai du rater quelque chose, car je ne comprends pas pourquoi tout ca ne te suffit pas ? Emmanuel Quote Link to comment Share on other sites More sharing options...
Fluckysan Posted October 9, 2009 Share Posted October 9, 2009 @Alocaly : Hhugues veut rafraîchir l'Activity qui a appelé la Dialog au click sur le bouton :o Comme le dit Alocaly, tu peux récupérer le parent de la Dialog au click du bouton (OK ou Cancel) et appeler des fonctions de celui-ci avec : getParent() (http://developer.android.com/intl/fr/reference/android/view/ViewParent.html#getParent%28%29) Ca te convient peut-être mieux vus que tu ne veux pô faire beaucoup d'Activity Après ya plusieurs solutions : Faire plusieurs Activity mais faire peu d'action dedans (mais c'est plus propre) Regrouper les fonctions (pour éviter la duplication de code notamment) Faire les 2 précédemment cités (C'est le mieux:p) Quote Link to comment Share on other sites More sharing options...
popolbx Posted October 9, 2009 Share Posted October 9, 2009 sinon plus simple avec un lambda: Si ton activity est Toto et le button qui l'a fait apparaitre a l'id buttonalacon, et que toto a un fonction refresh pour se raffraichir dans le OnCreate Button bt = (Button) findmachin(R.id.buttonalacon); bt.setOnClickListener(new OnClickListener(){ void onClick(){ Dialog xxx = new Dialog(){ ..... le code de ton dialog void dismiss(){ Toto.this.refresh(); } }; } }); Quote Link to comment Share on other sites More sharing options...
Hhugues Posted October 9, 2009 Author Share Posted October 9, 2009 Alors suite à vos conseils et malgré mes réticences j'ai fini par adopter l'approche par activity et j'ai donc fait une nouvelle activity tout marche à nouveau ! Merci beaucoup 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.