Android Datum Tijd Kiezer Dialoog

Android Datum Tijdkiezer wordt veel gebruikt in Android-apps. In deze tutorial zullen we het gebruik van een Datumkiezer en Tijdkiezer Dialoog in onze Android-toepassing demonstreren. Deze componenten worden gebruikt om datum en tijd te selecteren in een aangepaste gebruikersinterface. We zullen de klassen DatePickerDialog en TimePickerDialog gebruiken met de klasse Calendar in de code van onze Android-toepassing om dit te bereiken.

Android DatePickerDialog en TimePickerDialog

Hoewel een Datumkiezer en Tijdkiezer als onafhankelijke widgets kunnen worden gebruikt, nemen ze meer ruimte in op het scherm. Daarom is het beter om ze in een dialoogvenster te gebruiken. Gelukkig biedt Android ons zijn eigen DatePickerDialog- en TimePickerDialog-klassen. De klassen DatePickerDialog en TimePickerDialog hebben respectievelijk de callback-methoden onDateSetListener() en onTimeSetListener(). Deze callback-methoden worden aangeroepen wanneer de gebruiker klaar is met het invullen van de datum en tijd. De klasse DatePickerDialog bestaat uit een constructeur met 5 argumenten met de onderstaande parameters.

  1. Context: Het vereist de toepassingscontext
  2. CallBack-functie: onDateSet() wordt aangeroepen wanneer de gebruiker de datum instelt met de volgende parameters:
  • int jaar : Het zal het huidige geselecteerde jaar van het dialoogvenster opslaan
  • int maandVanHetJaar : Het zal de momenteel geselecteerde maand opslaan uit het dialoogvenster
  • int dagVanDeMaand : Het zal de momenteel geselecteerde dag opslaan uit het dialoogvenster
  1. int jaar : Het toont het huidige jaar dat zichtbaar is wanneer het dialoogvenster verschijnt
  2. int maand : Het toont de huidige maand die zichtbaar is wanneer het dialoogvenster verschijnt
  3. int dag : Het toont de huidige dag die zichtbaar is wanneer het dialoogvenster verschijnt

De TimePickerDialog-klasse bestaat uit een constructor met 5 argumenten met de onderstaande parameters.

  1. Context: Het vereist de toepassingscontext
  2. CallBack Functie: onTimeSet() wordt aangeroepen wanneer de gebruiker de tijd instelt met de volgende parameters:
  • int uurVanDeDag : Het zal het momenteel geselecteerde uur van de dag opslaan uit het dialoogvenster
  • int minuut : Het zal de momenteel geselecteerde minuut opslaan uit het dialoogvenster
  1. int uren : Het toont het huidige uur dat zichtbaar is wanneer het dialoogvenster verschijnt
  2. int minuten : Het toont de huidige minuut die zichtbaar is wanneer het dialoogvenster verschijnt
  3. boolean false : Als dit op false is ingesteld, wordt de tijd weergegeven in 24-uurs formaat, anders niet

Voorbeeldprojectstructuur van Android DateTime Picker

Projectcode voor Android DateTime Picker-dialoog

Het bestand activity_main.xml bestaat uit twee knoppen om de Datum- en Tijdkiezer-dialoogvensters op te roepen en de door de gebruiker geselecteerde tijd in de twee EditText-weergaven in te stellen. De XML-code wordt hieronder gegeven. 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>

De klasse MainActivity.java wordt hieronder gegeven:

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) {

            
// Huidige datum ophalen
            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) {

            
// Huidige tijd ophalen
            final Calendar c = Calendar.getInstance();
            mHour = c.get(Calendar.HOUR_OF_DAY);
            mMinute = c.get(Calendar.MINUTE);

            
// Tijdkiezer-dialoog 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();
        }
    }
}

In de bovenstaande code hebben we een Calendar-object gemaakt met behulp van Calendar.getInstance() om de huidige datum en tijd weer te geven met de respectievelijke statische velden. Let op: De weergave van de kalender en klok zijn de standaard UI-thema’s zoals verstrekt in het AppCompat-thema. Hieronder is de output geproduceerd door ons voorbeeld van een Android-datumtijdkiezer. Hiermee komt een einde aan de zelfstudie voor het voorbeeld van het Android datumtijdkiezerdialoogvenster. Je kunt het definitieve Android DateTimePickerDialog Project downloaden via de onderstaande link.

Download Android Date Time Picker Project

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