2010-11-29 6 views
1

Je pourrais avoir besoin d'afficher une boîte de dialogue, en fonction d'une certaine condition. Cette condition devra être résolue avant que l'application puisse continuer. Fondamentalement, j'ai besoin de "mettre en pause" l'exécution de mon programme jusqu'à ce que cette boîte de dialogue a été détruite. J'ai essayé un tas de méthodes différentes mais je rencontre un problème où l'application continue à s'exécuter. Actuellement, showDialog est dans la méthode onCreate() de mon activité principale.l'affichage d'une boîte de dialogue dans onCreate()

Toutes les suggestions seraient grandement appréciées.

Répondre

4

Si vous voulez exécuter du code seulement après un bouton a été pressé, vous devez utiliser un `onClickListener ':

Voir: http://developer.android.com/reference/android/app/AlertDialog.html#setButton(int, java.lang.CharSequence, android.content.DialogInterface.OnClickListener)

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle(R.string.first_run_version_title) 
    .setNeutralButton(R.string.ok_menu_button, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int id) { 
      // code to run here 
     } 
    }); 
AlertDialog alert = builder.create(); 
alert.show(); // <-- Forgot this in the original post 
+0

Merci pour la suggestion, mais cela ne va pas travailler pour moi. J'ai besoin que le dialogue (ou l'activité) soit lancé en fonction d'une condition (fichier introuvable) au début de mon exécution. Je ne veux pas avoir à demander à l'utilisateur de cliquer sur un bouton. Ils vont être invités avec l'option de télécharger le fichier ou quitter l'application. Mon application ne fonctionnera pas sans ce fichier. –

+0

Il semble que l'utilisateur doive cliquer sur un bouton. Si l'utilisateur clique sur le bouton de sortie, alors 'OnClickListener' appelle simplement' finish() 'et si l'utilisateur clique sur le bouton de téléchargement alors' OnClickListener' pour ce bouton appelle n'importe quel code télécharge le fichier. – Computerish

+0

Désolé, j'ai effectivement essayé ce que vous avez suggéré mais cela ne fonctionne pas dans onCreate(). Il ne sera jamais affiché. –