40 votes

Le plus simple fragment oui / non du dialogue

Je voudrais faire une dialog fragment qui demande "Êtes-vous sûr?" avec un "oui/non" " réponse.

J'ai regardé la documentation et c'est vraiment détaillé, allez tous sur la place, en expliquant comment faire les boîtes de dialogue, mais pas intact code sur un simple 'bonjour le monde' type de boîte de dialogue. La plupart des tutoriels utiliser le obsolète système de boîte de dialogue. Le blog officiel semble être inutilement compliqué et difficile à comprendre.

Alors, quelle est la façon la plus simple de créer et d'afficher une base de Dialogue d'Alerte? Les points de Bonus si c'est à l'aide de la bibliothèque de prise en charge.

80voto

athor Points 3156

Un DialogFragment est vraiment juste un fragment qui encapsule une boîte de dialogue. Vous pouvez placer n'importe quel type de boîte de dialogue par la création et le retour de la boîte de dialogue dans le onCreateDialog() la méthode de la DialogFragment.

Heres un exemple DialogFragment:

class MyDialogFragment extends DialogFragment{
    Context mContext;
    public MyDialogFragment() {
        mContext = getActivity();
    }
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext);
        alertDialogBuilder.setTitle("Really?");
        alertDialogBuilder.setMessage("Are you sure?");
        //null should be your on click listener
        alertDialogBuilder.setPositiveButton("OK", null);
        alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });


        return alertDialogBuilder.create();
    }
}

Pour créer la boîte de dialogue appel:

new MyDialogFragment().show(getFragmentManager(), "MyDialog");

Et pour fermer la boîte de dialogue à partir de quelque part:

((MyDialogFragment)getFragmentManager().findFragmentByTag("MyDialog")).getDialog().dismiss();

Tous les de ce code fonctionne parfaitement avec le soutien de la bibliothèque, en changeant juste les importations de bénéficier de l'appui de la bibliothèque de classes.

12voto

Luksprog Points 52767

Alors, quelle est la façon la plus simple de créer et d'afficher une base vraiment d'Alerte Dialogue? Les points de Bonus si c'est à l'aide de la bibliothèque de prise en charge.

Il suffit de créer un DialogFragment(sdk ou bibliothèque de prise en charge) et de remplacer son onCreateDialog méthode de retour d'un AlertDialog avec le texte de votre choix et boutons fixés sur elle:

public static class SimpleDialog extends DialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        return new AlertDialog.Builder(getActivity())
                .setMessage("Are you sure?").setPositiveButton("Ok", null)
                .setNegativeButton("No way", null).create();
    }

}

De faire quelque chose lorsque l'utilisateur utilise le bouton, vous aurez à fournir une instance d'un DialogInterface.OnClickListener , au lieu de l' null références de mon code.

-1voto

Jiashuo Li Points 1046

Je pense que ce sera une méthode simple.

  AlertDialog.Builder builder = new AlertDialog.Builder(SendActivity.this);
 

Puis définissez une propriété.

 builder.setTitle("Title");  
 

Enfin, montrez-le!

 builder.show();
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X