Jump to content

[RESOLU]Action à effectuer après la fermeture d'un Dialog


Hhugues

Recommended Posts

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 by Hhugues
Link to comment
Share on other sites

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

Link to comment
Share on other sites

@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)
Link to comment
Share on other sites

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();

}

};

}

});

Link to comment
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
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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...