IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Dialog de confirmation avant de supprimer..


Sujet :

Composants graphiques Android

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 31
    Points
    31
    Par défaut Dialog de confirmation avant de supprimer..
    Bonjour,
    Je travail toujours sur mon widget et j'ai beaucoup avancé.
    j'aimerais savoir comment créer un fenêtre de dialogue avant de supprimer un sms.
    J'ai déjà écrit une fonction qui marche, message.delete()
    Mais il me faudrait une demande de confirmation... (êtes-vous sûr de vouloir supprimer...)
    dois-je créer une nouvelle activity ou bien puis-je utiliser showDialog(DELETE_DIALOG)...
    en précisant qu'avec showDialog, je ne sais pas comment récupérer l'info (si l'utilisateur a cliqué sur ok ou cancel..)

  2. #2
    Membre régulier Avatar de Palsajicoco
    Étudiant
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 84
    Points
    84
    Par défaut
    Pas besoin d'une activité à chaque fois! dans ce cas showDialog devrai suffire largement! vous devez tout juste après déclarer une classe privée où vous recevrez les listners des boutons "ok" et "cancel" et exécuter ce que vous désirez

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 31
    Points
    31
    Par défaut
    peux-tu être plus précis?
    En fait moi j'écris ces lignes de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dialog d = new AlertDialog.Builder(this)
    			.setTitle(R.string.pref_show_delete_button_dialog_title)
    			.setMessage(R.string.pref_show_delete_button_dialog_text)
    			.setNegativeButton(android.R.string.cancel, null)
    			.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
    					@Override
    					public void onClick(DialogInterface dialog, int which) {
    						msg.delete();
     
    					}
    				})
    			.create();
    			d.setOwnerActivity(this); // why can't the builder do this?
    			d.show();
    car je ne sais pas utiliser le showDialog d'android, bref,
    Comme rien n'est jamais simple, ça ne marche pas car évidemment j'éxécute ma boîte de dialog d'un widget.
    Du coups eclipse ne reconnait pas d.setOwnerActivity(this)

  4. #4
    Membre habitué Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Points : 197
    Points
    197
    Par défaut
    Pour afficher une boite de dialogue, tu dois écrire une procédure comme ceci :

    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
    protected Dialog onCreateDialog() {
    // Création d'un boite de dialogue 
    Dialog dialog;
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
     
    	builder.setMessage("Voulez-vous supprimer le sms ?");
    	builder.setCancelable(false);
    	builder.setTitle("Confirmation");
     
    	builder.setPositiveButton("OUI",
    		new DialogInterface.OnClickListener() {
    			public void onClick(DialogInterface dialog, int id) {
    				// effacement du sms;
    			}
    		});
     
    	builder.setNegativeButton("NON",
    		new DialogInterface.OnClickListener() {
    			public void onClick(DialogInterface dialog, int id) {
    				dialog.cancel();
    			}
    		});
     
    	dialog = builder.create();
    	return dialog;
    }
    Et tu appelles la boite de dialogue comme ceci :
    Il te proposera d'importer ce qu'il faut...
    Christian
    Nexus 1 sous Cyanogen - Acer A500

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 36
    Points : 31
    Points
    31
    Par défaut
    En fait il faut carrément créer une activité de type dialog, parce que le "this" ne s'applique dans cas d'une appWidget et si on le remplace par context, il ne se passe rien mais le Logcat indique une erreur.
    du coup j'ai créé ma boite dans une activité et là ça fonctionne à merveille...
    sauf que j'aimerais que mon widget attande la réponse avant de continuer le code...
    alors je ne sais pas si on peut mettre un truc du type if(onFocus) mais ça m'embête un peut cette histoire...

  6. #6
    Membre habitué Avatar de cad13
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 247
    Points : 197
    Points
    197
    Par défaut
    Si j'ai bien compris ce que tu veux faire, il te suffit d'appeler ton activity par startActivityForResult.

    D'abord il faut déclarer une constante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static final int ACTIVITY1_REQUEST = 0;
    Ensuite l'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent intent = new Intent(this, maclass.class);
    startActivityForResult(intent, ACTIVITY1_REQUEST);
    Au retour, tu pourras savoir si cette activity est terminée, donc poursuivre ton code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    protected void onActivityResult(int requestCode, int intRESULT, Intent data) {
    /* Test pour savoir quelle activity est terminée */	
        if (requestCode == ACTIVITY1_REQUEST) {
           /* continuation du code ou retour d'un booléen pour indiquer à ton code de poursuivre */
        }
    };
    Dans ton activity, tu dois en soritr ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setResult(intRESULT);     // si tu veux renvoyer un résultat, mais pas obligé
    finish();
    Christian
    Nexus 1 sous Cyanogen - Acer A500

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/12/2012, 12h24
  2. Réponses: 4
    Dernier message: 04/04/2006, 16h09
  3. [Sécurité] Confirmation avant de supprimer
    Par borgfabr dans le forum Langage
    Réponses: 20
    Dernier message: 12/12/2005, 18h02
  4. Confirmation avant de fermer une fenetre
    Par Dauphin dans le forum C++Builder
    Réponses: 10
    Dernier message: 26/05/2005, 00h27
  5. Réponses: 2
    Dernier message: 03/08/2004, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo