Android-Datums- und Zeitwählerdialog

Android Datum Zeit Auswahldialoge werden in Android-Apps häufig verwendet. In diesem Tutorial zeigen wir die Verwendung eines Datumsauswahldialogs und eines Zeitauswahldialogs in unserer Android-Anwendung. Diese Komponenten werden verwendet, um Datum und Uhrzeit in einer benutzerdefinierten Benutzeroberfläche auszuwählen. Wir werden die Klassen DatePickerDialog und TimePickerDialog mit der Klasse Calendar in unserem Android-Anwendungscode verwenden, um dies zu erreichen.

Android DatePickerDialog und TimePickerDialog

Obwohl ein Datumswähler und ein Zeitwähler als unabhängige Widgets verwendet werden können, beanspruchen sie mehr Platz auf dem Bildschirm. Daher ist es besser, sie innerhalb eines Dialogfelds zu verwenden. Glücklicherweise stellt Android uns seine eigenen Klassen DatePickerDialog und TimePickerDialog zur Verfügung. Die Klassen DatePickerDialog und TimePickerDialog verfügen jeweils über die Rückrufmethoden onDateSetListener() und onTimeSetListener(). Diese Rückrufmethoden werden aufgerufen, wenn der Benutzer das Datum bzw. die Uhrzeit festgelegt hat. Die DatePickerDialog-Klasse besteht aus einem Konstruktor mit 5 Argumenten mit den unten aufgeführten Parametern.

  1. Kontext: Es erfordert den Anwendungskontext
  2. Rückruffunktion: onDateSet() wird aufgerufen, wenn der Benutzer das Datum festlegt, mit den folgenden Parametern:
  • int Jahr: Es wird das aktuell ausgewählte Jahr aus dem Dialogfeld gespeichert
  • int monthOfYear : Es wird den aktuellen ausgewählten Monat aus dem Dialog speichern
  • int dayOfMonth : Es wird den aktuellen ausgewählten Tag aus dem Dialog speichern
  1. int mYear : Es zeigt das aktuelle Jahr an, das sichtbar ist, wenn der Dialog erscheint
  2. int mMonth : Es zeigt den aktuellen Monat an, der sichtbar ist, wenn der Dialog erscheint
  3. int mDay : Es zeigt den aktuellen Tag an, der sichtbar ist, wenn der Dialog erscheint

Die TimePickerDialog-Klasse besteht aus einem 5-Argument-Konstruktor mit den unten aufgeführten Parametern.

  1. Kontext: Es erfordert den Anwendungskontext
  2. Rückruffunktion: onTimeSet() wird aufgerufen, wenn der Benutzer die Zeit einstellt, mit den folgenden Parametern:
  • int hourOfDay : Es wird die aktuelle ausgewählte Stunde des Tages aus dem Dialog speichern
  • int minute : Es wird die aktuelle ausgewählte Minute aus dem Dialog speichern
  1. int mHours : Es zeigt die aktuelle Stunde an, die sichtbar ist, wenn der Dialog erscheint
  2. int mMinute : Es zeigt die aktuelle Minute an, die sichtbar ist, wenn der Dialog erscheint
  3. boolean false : Wenn es auf false gesetzt ist, wird die Zeit im 24-Stunden-Format angezeigt, sonst nicht

Android Datum Zeit Picker Beispiel Projektstruktur

Android Datum Zeit Picker Dialog Projektcode

Die activity_main.xml besteht aus zwei Schaltflächen, um die Dialogfelder für Datum und Uhrzeit aufzurufen und die vom Benutzer ausgewählte Zeit in den beiden EditText-Ansichten festzulegen. Der XML-Code lautet wie folgt. activity_main.xml

<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/in_date"
        android:layout_marginTop="82dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="SELECT DATE"
        android:id="@+id/btn_date"
        android:layout_alignBottom="@+id/in_date"
        android:layout_toRightOf="@+id/in_date"
        android:layout_toEndOf="@+id/in_date" />

    <EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/in_time"
        android:layout_below="@+id/in_date"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="SELECT TIME"
        android:id="@+id/btn_time"
        android:layout_below="@+id/btn_date"
        android:layout_alignLeft="@+id/btn_date"
        android:layout_alignStart="@+id/btn_date" />

</RelativeLayout>

Die Klasse MainActivity.java ist wie folgt:

package com.journaldev.datetimepickerdialog;

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity implements
        View.OnClickListener {

    Button btnDatePicker, btnTimePicker;
    EditText txtDate, txtTime;
    private int mYear, mMonth, mDay, mHour, mMinute;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnDatePicker=(Button)findViewById(R.id.btn_date);
        btnTimePicker=(Button)findViewById(R.id.btn_time);
        txtDate=(EditText)findViewById(R.id.in_date);
        txtTime=(EditText)findViewById(R.id.in_time);

        btnDatePicker.setOnClickListener(this);
        btnTimePicker.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {

        if (v == btnDatePicker) {

            // Aktuelles Datum abrufen
            final Calendar c = Calendar.getInstance();
            mYear = c.get(Calendar.YEAR);
            mMonth = c.get(Calendar.MONTH);
            mDay = c.get(Calendar.DAY_OF_MONTH);


            DatePickerDialog datePickerDialog = new DatePickerDialog(this,
                    new DatePickerDialog.OnDateSetListener() {

                        @Override
                        public void onDateSet(DatePicker view, int year,
                                              int monthOfYear, int dayOfMonth) {

                            txtDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);

                        }
                    }, mYear, mMonth, mDay);
            datePickerDialog.show();
        }
        if (v == btnTimePicker) {

            // Aktuelle Uhrzeit abrufen
            final Calendar c = Calendar.getInstance();
            mHour = c.get(Calendar.HOUR_OF_DAY);
            mMinute = c.get(Calendar.MINUTE);

            // Uhrzeit-Picker-Dialog starten
            TimePickerDialog timePickerDialog = new TimePickerDialog(this,
                    new TimePickerDialog.OnTimeSetListener() {

                        @Override
                        public void onTimeSet(TimePicker view, int hourOfDay,
                                              int minute) {

                            txtTime.setText(hourOfDay + ":" + minute);
                        }
                    }, mHour, mMinute, false);
            timePickerDialog.show();
        }
    }
}

Im obigen Code haben wir ein Calendar-Objekt erstellt, das Calendar.getInstance() verwendet, um das aktuelle Datum und die aktuelle Zeit mithilfe der entsprechenden statischen Felder anzuzeigen. Hinweis: Der angezeigte Kalender und die Uhr sind die Standard-Benutzeroberflächen-Themen, wie sie im AppCompat-Thema bereitgestellt werden. Unten ist die Ausgabe unseres Beispielanwendungs für den Android-Datumszeit-Auswahl-Dialog. Damit endet das Tutorial zum Beispiel für den Android-Datumszeit-Auswahl-Dialog. Sie können das endgültige Android DateTimePickerDialog-Projekt über den untenstehenden Link herunterladen.

Android-Datum-Zeit-Auswahl-Projekt herunterladen

Source:
https://www.digitalocean.com/community/tutorials/android-date-time-picker-dialog