Bonjour à toutes et à tous,
Dans une application, j'ai une activité principale et plusieurs activités secondaires.
Pour chacune de ces activités, si je clique sur l'écran, j'ouvre un "AlertDialog" qui me propose plusieurs choix d'actions dont une qui est commune qui est l'enregistrement (sous…) de fichiers. Ces fichiers sont propres à chaque activité.
Jusque là, tout se passe bien : l'AlertDialog s'affiche sur l'écran de l'activité en proposant les diverses actions prévues dans chaque activité.
Si je clique sur l'item "Enregistrer sous …" un deuxième AlertDialog s'ouvre pour me demander le nom sous lequel je veux enregistrer mon fichier.
C'est là que ça se gâte.
Si je fais cela à partir de l'activité principale, tout se passe bien. Mais si je le fais à partir d'une activité secondaire, ce deuxième "AlertDialog" ne s'affiche pas ; je suis obligé de revenir à l'activité principale pour le voir apparaître. Je ne comprends pas pourquoi. Voici le code de ce deuxième AlertDialog qui est dans une classe appelée FCH, il est appelé à partir d'une méthode publique et statique de la même manière quelque soit l'activité appelante.
Si vous avez une idée d'où vient ce problème ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public static void enrgSous(final int quoi, final String ext) { final AlertDialog.Builder enrgFch = new AlertDialog.Builder(context); enrgFch.setTitle("Enregistrer"); final LinearLayout fntrEnrg = new LinearLayout(context); fntrEnrg.setOrientation(LinearLayout.VERTICAL); final LinearLayout fntrSec = new LinearLayout(context); TextView prmNom = new TextView(context); prmNom.setText(" Nom du fichier (" + ext + ")"); final EditText edNomFch = new EditText(context); edNomFch.setInputType(InputType.TYPE_CLASS_TEXT); edNomFch.setHint("nom fichier"); fntrSec.addView(prmNom); fntrSec.addView(edNomFch); fntrEnrg.addView(fntrSec); enrgFch.setView(fntrEnrg); fntrEnrg.setGravity(Gravity.CENTER_HORIZONTAL); enrgFch.setPositiveButton("Valider", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { switch (quoi) { case GLB.SCHEMA: enrgSchSissy(fchCours + ext); break; case GLB.REP_TEMP: enrgDonnees(GLB.REP_TEMP, edNomFch.getText().toString() + ext); break; case GLB.REP_FREQ: enrgDonnees(GLB.REP_FREQ, edNomFch.getText().toString() + ext); break; } } }); enrgFch.setNegativeButton("Annuler", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }); AlertDialog dlg = enrgFch.create(); dlg.show(); }
Cordialement.
Pierre
Partager