2012-12-11 7 views
5

Je souhaite afficher une boîte de dialogue de progression qui affichera uniquement le bouton "Fermer" lorsque vous le souhaitez, par exemple lorsque la valeur de progression atteint sa valeur maximale. Sur ce bouton "fermer" je veux rejeter le dialogue. J'ai fait progresser le dialogue avec le bouton négatif et je peux le rejeter quand l'utilisateur clique dessus mais je ne veux pas que le bouton "fermer" soit visible/activé tout le temps juste quand je veux ou quand le progrès est terminé.Comment désactiver/activer le bouton de dialogue de progression

Merci.

+0

Je pense que c'est possible avec un Asynctask – Guillaume

+0

@Guillaume J'utilise asyncTask et précédemment je rejetais le dialogue sur postexecute mais maintenant je veux montrer le statut final en tant que texte de dialogue et l'utilisateur une option pour le fermer. Comment puis-je diable fermer le bouton, puis l'activer? – SohailAziz

+1

Vous pouvez utiliser 'setVisible (android.View.VISIBLE)' et 'setVisible (android.View.INVISIBLE)' http://developer.android.com/reference/android/view/View.html#setVisibility(int) – Guillaume

Répondre

1

Vous devez créer une boîte de dialogue personnalisée avec un ProgressBar et un bouton. Ensuite, utilisez Button.setVisibility (View.VISIBLE) et Button.setVisibility (View.INVISIBLE)

5

Pour construire le commentaire de Guillaume et la réponse de Karim, vous pouvez masquer/afficher ou activer/désactiver un bouton sur un ProgressDialog comme ceci:

ProgressDialog dlg = new ProgressDialog(this); 
dlg.setButton(ProgressDialog.BUTTON_NEUTRAL, 
       "Close", 
       new DialogInterface.OnClickListener() {     
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          //button click stuff here 
         } 
        }); 

dlg.show();  
dlg.getButton(ProgressDialog.BUTTON_NEUTRAL).setEnabled(false); 
//or alternatively 
//dlg.getButton(ProgressDialog.BUTTON_NEUTRAL).setVisibility(View.INVISIBLE); 

Vous pouvez accrocher sur le Button pour permettre, une fois que votre tâche est terminée plus tard. Assurez-vous de composer le getButton après avoir appelé le show.

Questions connexes