AlertDialog de setCancelable(faux) méthode ne fonctionne pas
J'avais créé un AlertDialog qui fonctionne bien. Il est en train de disparaître, si j'appuie sur:
1) échapper à la touche du clavier ou
2) bouton de retour à l'aide de la souris
Pour le faire rester concentré, même sur les conditions indiquées ci-dessus, j'avais ajouté".setCancelable(false)' déclaration lors de la construction. Mais, je vois encore de la boîte de dialogue disparaît. Où est le problème?
S'il vous plaît aider.
Code ajouté:
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(title)
.setCancelable(false)
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doPositiveClick();
}
}
)
.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialog)getActivity()).doNegativeClick();
}
}
)
.create();
Env: Android 4.0 sur windows XP Professionnel.
- S'il vous plaît poster un peu de code.
- pouvez-vous s'il vous plaît télécharger votre code ?
- '.setCancelable(false)' est dans la quatrième ligne du code.
- Pourquoi mettez-vous le
setNegativeButton()
partie si vous ne voulez pas que votre boîte de dialogue pour être annulable ? - Je veux capturer la réponse de l'utilisateur, en termes de oui ou non.
Vous devez vous connecter pour publier un commentaire.
Est cette votre code complet? alors s'il vous plaît changer votre code pour la mise
setCancelable(false)
comme cesetCancelable(false)
ne fonctionne pas dans le code ci-dessus parce queAlertDialog
création fait partie deDialogFragment
classe. Cliquez sur ce lien dans la réponse ci-dessus, qui montre le code complet. DeDialogFragment
description de la classe - "Ce fragment contient une boîte de Dialogue objet, qui s'affiche comme fondée sur le fragment de l'état. Le contrôle de la boîte de dialogue (les décisions d'afficher, de masquer, de les rejeter) doit être fait par le biais de l'API ici, pas avec des appels directs sur le dialogue.".Votre dialogue est défini à non-annulable, mais votre hôte fragment est encore résiliables. Définissez votre fragment avec
setCancelable(false)
.Un autre exemple de travail:
Étape 1
Créer une classe:
Étape 2
Ajouter une méthode à votre
Activity
:Étape 3
Appel
showDialog()
quand vous en avez besoin pour afficher la boîte de dialoguesetCanceledOnTouchOutside(boolean)
La façon la plus simple à mettre en œuvre "setCancelable" est de mettre en œuvre les même lors de l'appel de la boîte de dialogue lors de l'activité; de Cette façon, pas directement dans la classe de boîte de dialogue.
Dans Kotlin pour la fabrication de boîte de dialogue non-révocable