[JAVA] Android-Entwicklung - Versuchen Sie, einen Dialog aufzurufen.

Einführung

Hallo. Ich bin Wataku, ein serverseitiger Programmierer, der an einer bestimmten Schule Programmieren studiert. : entspannt: Lassen Sie uns auch dieses Mal Android entwickeln.

Zielperson

Dialogfeld anzeigen

Dialogkonfiguration

スクリーンショット 2018-11-12 11.15.42.png ## Vorgehensweise zum Erstellen und Anzeigen von Dialogen Das Erstellen und Anzeigen des Warnungsdialogs erfolgt wie folgt. ** 1) Erstellen Sie eine Klasse, die DialogFragment erbt. ** ** **
public class SimpleDialogFragment  extends DialogFragment {

** 2) Beschreiben Sie den Generierungsprozess des Dialogkörpers in der Methode onCreateDialog (). ** ** **

public Dialog onCreateDialog( ... ) { 
Dialoggenerierungsprozess(Siehe unten)
}

** 3) Schreiben Sie den folgenden Code, wenn Sie einen Dialog für Aktivitäten usw. anzeigen. **

--Neue die oben genannte Klasse.

SimpleDialogFragment dialog = new SimpleDialogFragment();
FragmentManager manager = getSupportedFragmentManager();
<Die folgenden zwei Argumente.>
1:Fragmentmanager
Nr. 2:Tag-Zeichenfolge, die den Dialog identifiziert(Beliebige Zeichenfolge)
dialog . show ( manager , “ ... ” );

(Hinweis) Beide DialogFragment.FragmentManager importieren das v4-Paket.

○ import android.support.v4.app.FragmentManager 

× import android.app.FragmentManager

Vorgehensweise zum Generieren des Dialogkörpers

Führen Sie die folgenden Schritte aus, um den Fehlerdialogkörper zu generieren, der in der onCreateDialog () -Methode der von Ihnen erstellten Dialogfragmentklasse beschrieben ist.

** 1) Erstellen Sie ein Builder-Objekt für den Warnungsdialog. ** ** **

AlertDialog.Builder builder = new AlertDialog.Builder(Kontext);

** 2) Stellen Sie den Anzeigeinhalt ein. ** ** **

· Inhaltsbereich
builder.setMessage( ... );
·Titel
builder.setTitle( ... );

** 3) Stellen Sie die Aktionstaste ein. ** ** **

builder . setPositiveButton("Button Label",Listener-Objekt, wenn die Taste gedrückt wird(Siehe unten)); 

Es gibt auch * setNegativeButton () * und * setNeutralButton () *.

** 4) Erstellen Sie ein Dialogobjekt. ** ** **

AlertDialog dialog = builder.create( ) ;

(Hinweis) Die AlertDialog-Klasse importiert aus dem v7-Paket

Klicken Sie auf Verarbeitung

Der Vorgang beim Tippen auf die Aktionsschaltfläche des Warnungsdialogs wird in der Listener-Klasse beschrieben. Das Verfahren ist wie folgt. ** 1) Erstellen Sie eine verschachtelte Klasse, die die Schnittstelle DialogInterface.OnClickListener implementiert. ** ** **

** 2) Beschreiben Sie den Prozess in der onClick () -Methode. ** ** **

private class DialogButtonClickListener implements DialogInterface.OnClickListener {
        @Override
        public void onClick(DialogInterface-Dialog (Dialogkörper),int which (konstanter Wert der getippten Taste)) {
            //Klicken Sie auf Verarbeitung
        }
}

(Hinweis) Wenn mehrere Aktionsschaltflächen vorhanden sind, kann für jede Schaltfläche eine Listener-Klasse vorbereitet werden, die jedoch mit dem zweiten Argument (int which) verzweigt werden kann.

Zusammenarbeit mit Aktivitäten

** (1) Aktivität erhalten **

Verwenden Sie die Methode ** getActivity () **, um die Aktivität abzurufen, in der der Dialogkörper im Dialogfragment angezeigt wird.

Activity parent = getActivity();

** (2) Daten I **

Verwenden Sie die folgende Methode, um Daten von einer Aktivität an ein Dialogfragment zu übergeben. ** 1) Erstellen Sie ein Bundle-Objekt. ** ** **

Bundle extras = new Bundle();

** 2) Beschreiben Sie den Prozess in der onClick () -Methode. ** ** **

extends.Datentyp setzen("Name",Wert);

** 3) Setzen Sie das Bundle-Objekt von 2) im Dialogfragmentobjekt. ** ** **

dialog.setArgments(extends);

** 4) Rufen Sie im Dialogfragment das obige Bundle-Objekt mit der Methode getArlements () ab und rufen Sie die Daten ab. → Die Methode zum Abrufen ist dieselbe wie für Intent (vorab auf Null prüfen) **

Beispielcode

FullDialogFragment.java


public class FullDialogFragment extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("Normaler Dialog");
        builder.setMessage("Ist es o.k?");
        builder.setPositiveButton("ok", new DialogButtonClickListener());
        builder.setNeutralButton("??", new DialogButtonClickListener());
        builder.setNegativeButton("NG", new DialogButtonClickListener());
        AlertDialog dialog = builder.create();
        return dialog;
    }

    /**
     *Eine Mitgliedsklasse, die beschreibt, was passiert, wenn eine Dialogschaltfläche gedrückt wird.
     */
    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 = "Normaler Dialog:OK ist ausgewählt.";
                    break;
                case DialogInterface.BUTTON_NEUTRAL:
                    msg = "Normaler Dialog: ??Wurde ausgewählt.";
                    break;
                case DialogInterface.BUTTON_NEGATIVE:
                    msg = "Normaler Dialog:NG wurde ausgewählt.";
                    break;
            }
            Toast.makeText(parent, msg, Toast.LENGTH_SHORT).show();
        }
    }
}

Aktivitätsklasse (Auszug)

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

TIPS

Datumsauswahldialog

Für den Datumsauswahldialog "neu" ** DatePickerDialog ** und ** show () **. Die Argumente sind wie folgt.

-① Kontext -② Listener-Objekt -③ Anfangswert "Jahr" -④ Anfangswert "Monat" → Java "Monat" startet intern * 0 *. -⑤ Anfangswert "Tag"

Das Listener-Objekt * implementiert * die Schnittstelle ** DatePickerDialog.OnDateSetListener ** und beschreibt den Prozess in der Methode ** onDateSet () **. Die Argumente sind wie folgt.

-① Teile des Datumsangabenbildschirms -② Ausgewähltes "Jahr" -③ Ausgewählter "Monat" -④ Ausgewählter "Tag"

Beispielcode

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 = "Datumsauswahldialog:" + year + "Jahr" + (month + 1) + "Mond" + dayOfMonth + "Tag";
            Toast.makeText(DialogSampleActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
}

Zeitauswahldialog

Für den Zeitauswahldialog "neu" ** TimePickerDialog ** und ** show () **. Die Argumente sind wie folgt.

-① Kontext -② Listener-Objekt -③ Anfangswert "Stunde" (24-Stunden-Einheit) -④ Anfangswert "Minute" -⑤ Gibt an, ob 24 Stunden angezeigt werden sollen (true ist die 24-Stunden-Notation).

Das Listener-Objekt * implementiert * die Schnittstelle ** TimePickerDialog.OnTimeSetListener ** und beschreibt den Prozess in der Methode ** onTimeSet () **. Die Argumente sind wie folgt.

-① Zeitbezeichnung Bildschirmteile -② Ausgewählte "Zeit" -③ Ausgewählte "Minuten"

Beispielcode

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 = "Zeitauswahldialog:" + hourOfDay + "Zeit" + minute + "Protokoll";
            Toast.makeText(DialogSampleActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
}

das ist alles. So wurde der Dialog auf Android angezeigt. Wenn Sie Vorschläge haben, wie etwas nicht stimmt, kontaktieren Sie uns bitte. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

Android-Entwicklung - Versuchen Sie, einen Dialog aufzurufen.
[Android] Überprüfungsdialoganzeige
[Android] Implementieren Sie schnell die Funktion zum Anzeigen des Passworts
[Android] So erstellen Sie ein Dialogfragment
Beispiel für die Anzeige von (Head-up-) Benachrichtigungen auf Android
Android Drücken Sie einfach eine Taste
Beachten Sie, dass Junit 4 zu Android Studio hinzugefügt wurde
[Android] Erstellen Sie eine neue Klasse, indem Sie ImageView erben
[Android] So konvertieren Sie eine Zeichenfolge in resourceId
So zeigen Sie eine Webseite in Java an
[Android] Zwei Möglichkeiten, einen Bluetooth-Adapter zu erhalten
[Android / Java] Richten Sie eine Schaltfläche ein, um zu Fragment zurückzukehren
Einführung in das Android-Layout
So zeigen Sie eine Browser-Vorschau mit VS-Code an
[Einführung in die Android App-Entwicklung] Machen wir einen Zähler
So machen Sie einen Screenshot mit dem Android Studio-Emulator
Ich habe versucht, TabLayout unter Android eine Trennlinie hinzuzufügen
Android App, die Bilder aus der Galerie auswählt und anzeigt
So zeigen Sie Diagramme in Ruby on Rails an (LazyHighChart)
Ich bin froh, eine Methode zu haben, um Zeichen auf Android zu blinken
So implementieren Sie eine einzeilige Anzeige von TextView in der Android-Entwicklung
Ich möchte FireBase verwenden, um eine Zeitleiste wie Twitter anzuzeigen
Einführung in die Android App-Entwicklung
Wie hinterlasse ich einen Kommentar?
[Java] So zeigen Sie Wingdings an
Übergeben Sie Variablen an Scope.
Praxis zur Vereinheitlichung der Dialogimplementierung
Kenntnisse erforderlich, um Tweets anzuzeigen
So schreiben Sie ein benutzerorientiertes Programm (1)
[Android] Verbindung zu MySQL herstellen (unvollendet)
So fügen Sie ein Video ein
So erstellen Sie eine Methode
Ich habe versucht, eine einfache Karten-App in Android Studio zu erstellen
Ein Neuling versucht, die Android-Ansicht zusammenzufassen (Entwicklung von Android-Anfängern)
Quelle zur Anzeige des Zeichenarrays mit numberPicker in Android Studio (Java)