[JAVA] Développement Android-Essayez d'afficher une boîte de dialogue-

introduction

Bonjour. Je suis Wataku, un programmeur côté serveur qui étudie la programmation dans une certaine école. : détendu: Développons également Android cette fois.

Personne cible

Afficher la boîte de dialogue

Configuration de la boîte de dialogue

スクリーンショット 2018-11-12 11.15.42.png ## Procédure de création et d'affichage des boîtes de dialogue Le processus de création et d'affichage de la boîte de dialogue d'alerte est le suivant. ** 1) Créez une classe qui hérite de DialogFragment. ** **
public class SimpleDialogFragment  extends DialogFragment {

** 2) Décrivez le processus de génération de corps de dialogue dans la méthode onCreateDialog (). ** **

public Dialog onCreateDialog( ... ) { 
Processus de génération de dialogue(Voir ci-dessous)
}

** 3) Écrivez le code suivant lors de l'affichage d'une boîte de dialogue pour les activités, etc. **

--Nouvelle la classe ci-dessus.

SimpleDialogFragment dialog = new SimpleDialogFragment();
FragmentManager manager = getSupportedFragmentManager();

--Affiche une boîte de dialogue avec la méthode show ().

<Les deux arguments suivants.>
1er:Gestionnaire de fragments
N ° 2:Chaîne de balise qui identifie la boîte de dialogue(Chaîne de caractères arbitraire)
dialog . show ( manager , “ ... ” );

(Remarque) `` Les deux DialogFragment.FragmentManager importent le package v4. ''

○ import android.support.v4.app.FragmentManager 

× import android.app.FragmentManager

Procédure de génération du corps de dialogue

Suivez la procédure ci-dessous pour générer le corps de la boîte de dialogue d'erreur décrit dans la méthode onCreateDialog () de la classe de fragment de boîte de dialogue que vous avez créée.

** 1) Créez un objet générateur de boîte de dialogue d'alerte. ** **

AlertDialog.Builder builder = new AlertDialog.Builder(le contexte);

** 2) Réglez le contenu de l'affichage. ** **

· Zone de contenu
builder.setMessage( ... );
·Titre
builder.setTitle( ... );

** 3) Réglez le bouton d'action. ** **

builder . setPositiveButton("Libellé du bouton",Objet écouteur lorsque vous appuyez sur le bouton(Voir ci-dessous)); 

Il existe également * setNegativeButton () * et * setNeutralButton () *.

** 4) Créez un objet de dialogue. ** **

AlertDialog dialog = builder.create( ) ;

(Remarque) `` La classe AlertDialog est importée depuis le package v7

Traitement des clics

Le processus lorsque le bouton d'action de la boîte de dialogue d'alerte est tapé est décrit dans la classe d'écouteur. La procédure est la suivante. ** 1) Créez une classe imbriquée qui implémente l'interface DialogInterface.OnClickListener. ** **

** 2) Décrivez le processus dans la méthode onClick (). ** **

private class DialogButtonClickListener implements DialogInterface.OnClickListener {
        @Override
        public void onClick(Boîte de dialogue DialogInterface (corps de dialogue),int which (valeur constante du bouton tapé)) {
            //Traitement des clics
        }
}

(Remarque) `` S'il y a plusieurs boutons d'action, une classe d'écouteur peut être préparée pour chaque bouton, mais elle peut être branchée en utilisant le deuxième argument (int which). ''

Coopération avec les activités

** (1) Obtenez une activité **

Utilisez la méthode ** getActivity () ** pour obtenir l'activité dans laquelle le corps de la boîte de dialogue est affiché dans le fragment de la boîte de dialogue.

Activity parent = getActivity();

** (2) Données I **

Pour transmettre des données d'une activité à un fragment de boîte de dialogue, utilisez la méthode suivante. ** 1) Créez un objet Bundle. ** **

Bundle extras = new Bundle();

** 2) Décrivez le processus dans la méthode onClick (). ** **

extends.mettre le type de données("Nom",valeur);

** 3) Définissez l'objet Bundle sur 2) dans l'objet fragment de dialogue. ** **

dialog.setArgments(extends);

** 4) Dans le fragment de dialogue, récupérez l'objet Bundle ci-dessus avec la méthode getArgments () et récupérez les données. → La méthode de récupération est la même que pour Intent (vérifiez la valeur nulle à l'avance) **

Exemple de code

FullDialogFragment.java


public class FullDialogFragment extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("Boîte de dialogue normale");
        builder.setMessage("Est-ce que c'est bon?");
        builder.setPositiveButton("ok", new DialogButtonClickListener());
        builder.setNeutralButton("??", new DialogButtonClickListener());
        builder.setNegativeButton("NG", new DialogButtonClickListener());
        AlertDialog dialog = builder.create();
        return dialog;
    }

    /**
     *Une classe membre qui décrit ce qui se passe lorsqu'un bouton de dialogue est enfoncé.
     */
    private class DialogButtonClickListener implements DialogInterface.OnClickListener {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            Activity parent = getActivity();
            String msg = "";
            switch (which) {
                case DialogInterface.BUTTON_POSITIVE:
                    msg = "Boîte de dialogue normale:OK est sélectionné.";
                    break;
                case DialogInterface.BUTTON_NEUTRAL:
                    msg = "Boîte de dialogue normale: ??A été choisi.";
                    break;
                case DialogInterface.BUTTON_NEGATIVE:
                    msg = "Boîte de dialogue normale:NG a été sélectionné.";
                    break;
            }
            Toast.makeText(parent, msg, Toast.LENGTH_SHORT).show();
        }
    }
}

Classe d'activité (extrait)

FullDialogFragment dialog = new FullDialogFragment(); 
FragmentManager manager = getSupportFragmentManager();
dialog.show(manager,"FullDialogFragment");

TIPS

Boîte de dialogue de sélection de la date

Pour la boîte de dialogue de sélection de la date, "new" ** DatePickerDialog ** et ** show () **. Les arguments sont les suivants.

-① Contexte -② Objet auditeur -③ Valeur initiale "année" -④ Valeur initiale "mois" → Java "mois" commence * 0 * en interne. -⑤ Valeur initiale "jour"

L'objet écouteur * implémente * l'interface ** DatePickerDialog.OnDateSetListener ** et décrit le processus dans la méthode ** onDateSet () **. Les arguments sont les suivants.

-① Parties de l'écran de spécification de la date -② Sélectionné "année" -③ "mois" sélectionné -④ "jour" sélectionné

Exemple de code

public void showDatePickerDialog(View view){
        Calendar cal = Calendar.getInstance();
        int nowYear = cal.get(Calendar.YEAR);
        int nowMonth = cal.get(Calendar.MONTH);
        int nowDayOfMonth = cal.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog dialog = new DatePickerDialog(DialogSampleActivity.this, new DatePickerDialogDateSetListener(),nowYear,nowMonth,nowDayOfMonth);
        dialog.show();
}

private class DatePickerDialogDateSetListener implements DatePickerDialog.OnDateSetListener {

        @Override
        public void onDateSet(DatePicker view,int year,int month,int dayOfMonth) {
            String msg = "Boîte de dialogue de sélection de la date:" + year + "Année" + (month + 1) + "Mois" + dayOfMonth + "journée";
            Toast.makeText(DialogSampleActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
}

Boîte de dialogue de sélection de l'heure

Pour la boîte de dialogue de sélection de l'heure, "new" ** TimePickerDialog ** et ** show () **. Les arguments sont les suivants.

-① Contexte -② Objet auditeur -③ Valeur initiale "heure" (unité de 24 heures) -④ Valeur initiale "minute" -⑤ Afficher ou non 24 heures (vrai est la notation 24 heures)

L'objet écouteur * implémente * l'interface ** TimePickerDialog.OnTimeSetListener ** et décrit le processus dans la méthode ** onTimeSet () **. Les arguments sont les suivants.

-① Parties de l'écran de désignation de l'heure -② "heure" sélectionnée --③ "minutes" sélectionnées

Exemple de code

public void showTimePickerDialog(View view){
        TimePickerDialog dialog = new TimePickerDialog(DialogSampleActivity.this, new TimePickerDialogTimeSetListener(),0,0,true );
        dialog.show();
}

private class TimePickerDialogTimeSetListener implements TimePickerDialog.OnTimeSetListener {

        @Override
        public void onTimeSet(TimePicker view,int hourOfDay,int minute) {
            String msg = "Boîte de dialogue de sélection de l'heure:" + hourOfDay + "Temps" + minute + "Minutes";
            Toast.makeText(DialogSampleActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
}

c'est tout. C'était comment afficher la boîte de dialogue sur Android. Si vous avez des suggestions telles que quelque chose qui ne va pas, veuillez nous contacter. Merci d'avoir lu jusqu'au bout.

Recommended Posts

Développement Android-Essayez d'afficher une boîte de dialogue-
[Android] Affichage de la boîte de dialogue de révision
[Android] Implémentez rapidement la fonction pour afficher le mot de passe
[Android] Comment créer un fragment de dialogue
Exemple d'affichage des notifications (tête haute) sur Android
Android Donner facilement une «pression» sur un bouton
Notez que Junit 4 a été ajouté à Android Studio
[Android] Créez une nouvelle classe en héritant d'ImageView
[Android] Comment convertir une chaîne de caractères en resourceId
Comment afficher une page Web en Java
[Android] Deux façons d'obtenir un adaptateur Bluetooth
[Android / Java] Configurer un bouton pour revenir à Fragment
Introduction à la mise en page Android
Comment afficher un aperçu du navigateur avec VS Code
[Introduction au développement d'applications Android] Faisons un compteur
Comment faire une capture d'écran avec l'émulateur Android Studio
J'ai essayé d'ajouter une ligne de séparation à TabLayout sur Android
Application Android qui sélectionne et affiche des images de la galerie
Comment afficher des graphiques dans Ruby on Rails (LazyHighChart)
Je suis heureux d'avoir une méthode pour faire clignoter les caractères sur Android
Comment implémenter l'affichage sur une seule ligne de TextView dans le développement Android
Je souhaite utiliser FireBase pour afficher une chronologie comme Twitter
Introduction au développement d'applications Android
Comment laisser un commentaire
[Java] Comment afficher les Wingdings
Passez des variables à Scope.
Pratique pour unifier l'implémentation de Dialog
Connaissances requises pour afficher des tweets
Pour écrire un programme orienté utilisateur (1)
[Android] Connectez-vous à MySQL (non terminé)
Comment insérer une vidéo
Comment créer une méthode
J'ai essayé de créer une application cartographique simple dans Android Studio
Un nouveau venu tente de résumer la vue Android (développement d'applications Android pour débutants)
Source pour afficher le tableau de caractères avec numberPicker dans Android Studio (Java)