codestory

Die Anleitung zu Android TimePickerDialog

  1. Android TimePickerDialog
  2. Das Beispiel von TimePickerDialog

1. Android TimePickerDialog

Android TimePickerDialog stellt einen TimePicker in einen Dialog. Damit der Benutzer eine Zeit auswählen kann. Grundsätzlich gibt es keinen signifikanten Unterschied zwischen TimePickerDialog und TimePicker. Wenn Sie jedoch Anwendungsspeicherplatz sparen möchten, sollen Sie TimePickerDialog benutzen.
TimePickerDialog wird zur Laufzeit der Anwendung erstellt, wenn der Benutzer eine Zeit auswählen muss. Sie können es mithilfe des Java-Codes erstellen und anzeigen lassen:
TimePickerDialog (Clock Mode) (Default)
boolean is24HView = true;
int selectedHour = 10;
int selectedMinute = 20;

// Time Set Listener.
TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        editTextTime.setText(hourOfDay + ":" + minute );
        lastSelectedHour = hourOfDay;
        lastSelectedMinute = minute;
    }
};

// Create TimePickerDialog:
TimePickerDialog timePickerDialog = new TimePickerDialog(this,
                        timeSetListener, lastSelectedHour, lastSelectedMinute, is24HView);

// Show
timePickerDialog.show();
TimePickerDialog (Spinner Mode)
boolean is24HView = true;
int selectedHour = 10;
int selectedMinute = 20;

// Time Set Listener.
TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        editTextTime.setText(hourOfDay + ":" + minute );
        lastSelectedHour = hourOfDay;
        lastSelectedMinute = minute;
    }
};

// Create TimePickerDialog:
TimePickerDialog timePickerDialog = new TimePickerDialog(this,
                        android.R.style.Theme_Holo_Light_Dialog_NoActionBar,
                        timeSetListener, lastSelectedHour, lastSelectedMinute, is24HView);

// Show
timePickerDialog.show();

2. Das Beispiel von TimePickerDialog

Das Beispiel Vorschau
24H View Mode
12H View Mode
Im Android Studio erstellen Sie ein Projekt:
  • File > New > New Project > Empty Activity
    • Name: TimePickerDialogExample
    • Package name: org.o7planning.timepickerdialogexample
    • Language: Java
Die Interface der Anwendung:
activity_main.java
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/editText_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="90dp"
        android:ems="10"
        android:inputType="time"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="90dp"
        android:text="Select Time"
        app:layout_constraintStart_toEndOf="@+id/editText_time"
        app:layout_constraintTop_toTopOf="parent" />

    <CheckBox
        android:id="@+id/checkBox_isSpinnerMode"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="16dp"
        android:text="Spinner Mode?"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editText_time" />

    <CheckBox
        android:id="@+id/checkBox_is24HView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="16dp"
        android:text="Display TimePickerDialog in 24H mode?"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/checkBox_isSpinnerMode" />

</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package org.o7planning.timepickerdialogexample;

import androidx.appcompat.app.AppCompatActivity;

import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TimePicker;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {

    private EditText editTextTime;
    private Button buttonTime;
    private CheckBox checkBoxIsSpinnerMode;
    private CheckBox checkBoxIs24HView;

    private int lastSelectedHour = -1;
    private int lastSelectedMinute = -1;

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

        this.editTextTime = (EditText) this.findViewById(R.id.editText_time);
        this.buttonTime = (Button) this.findViewById(R.id.button_time);
        this.checkBoxIsSpinnerMode = (CheckBox) this.findViewById(R.id.checkBox_isSpinnerMode);
        this.checkBoxIs24HView = (CheckBox) this.findViewById(R.id.checkBox_is24HView);

        this.buttonTime.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                buttonSelectTime();
            }
        });
    }


    private void buttonSelectTime()  {
        if(this.lastSelectedHour == -1)  {
            // Get Current Time
            final Calendar c = Calendar.getInstance();
            this.lastSelectedHour = c.get(Calendar.HOUR_OF_DAY);
            this.lastSelectedMinute = c.get(Calendar.MINUTE);
        }
        final boolean is24HView = this.checkBoxIs24HView.isChecked();
        final boolean isSpinnerMode = this.checkBoxIsSpinnerMode.isChecked();

        // Time Set Listener.
        TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {

            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                editTextTime.setText(hourOfDay + ":" + minute );
                lastSelectedHour = hourOfDay;
                lastSelectedMinute = minute;
            }
        };

        // Create TimePickerDialog:
        TimePickerDialog timePickerDialog = null;

        // TimePicker in Spinner Mode:
        if(isSpinnerMode)  {
            timePickerDialog = new TimePickerDialog(this,
                    android.R.style.Theme_Holo_Light_Dialog_NoActionBar,
                    timeSetListener, lastSelectedHour, lastSelectedMinute, is24HView);
        }
        // TimePicker in Clock Mode (Default):
        else  {
            timePickerDialog = new TimePickerDialog(this,
                    timeSetListener, lastSelectedHour, lastSelectedMinute, is24HView);
        }

        // Show
        timePickerDialog.show();
    }

}

Anleitungen Android

Show More