Руководство Android TimePicker

View more Tutorials:

1- Android TimePicker

Android TimePicker это компонент позволяющий пользователю выбрать время (time), включая часы и минуты.
TimePicker имеет 2 режима с разными интерфейсами:
  1. Clock
  2. Spinner

Clock Mode

Режим  Clock ( Clock mode) является режимом по умолчанию у  TimePicker, в данном режиме пользователь может выбрать время визуально словно он/она меняет время на часах (Clock). Помимо этого, пользователь так же имеет другую опцию - это использовать клавиатуру для введения значения часам и минутам.
TimePicker (Clock Mode)
<TimePicker
    android:id="@+id/timePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:timePickerMode="clock" />
TimePicker timePicker = (TimePicker) this.findViewById(R.id.timePicker);
timePicker.setIs24HourView(true); // 24H Mode.

Spinner Mode

В режиме  Spinner ( Spinner mode), TimePicker состоит из 2-х или 3-х  Spinner. При этом первый  Spinner позволяет пользователю выбрать час, второй  Spinner позволяет выбрать минуты и третий  Spinner для выбора  AM или  PM.
TimePicker в режиме  Spinner & AM_PM состоит из 3-х  Spinner, пользователь выбирает час в первом  Spinner со значениями от 1 до 12. Выбирает минуты во втором  Spinner со значениями от 0 до 59 и выбирает  AM/PM в третьем  spinner.
TimePicker (Spinner Mode)
<TimePicker
    android:id="@+id/timePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:timePickerMode="spinner" />
TimePicker в режиме  Spinner & 24H состоит из 2-х  Spinner, пользователь выбирает час в первом  Spinner со значениями от 0 до 23, и минуты во втором  Spinner со значениями от 0 до 59.
TimePicker timePicker = (TimePicker) this.findViewById(R.id.timePicker);
timePicker.setIs24HourView(true); // 24H Mode.

2- Пример TimePicker

Просмотр примера:
На  Android Studio создайте project:
  • File > New > New Project > Empty Activity
    • Name: TimePickerExample
    • Package name: org.o7planning.timepickerexample
    • Language: Java
Интерфейс приложения:
activity_main.xml
<?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">

    <TimePicker
        android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:timePickerMode="clock"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView_time"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="HH:mm"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/timePicker" />

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

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;
import android.widget.TimePicker;

public class MainActivity extends AppCompatActivity {

    private TimePicker timePicker;
    private TextView textViewTime;

    // Change this value and run the application again.
    private boolean is24HView = true;

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

        this.textViewTime = (TextView) this.findViewById(R.id.textView_time);
        this.timePicker = (TimePicker) this.findViewById(R.id.timePicker);
        this.timePicker.setIs24HourView(this.is24HView);

        this.timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                textViewTime.setText(hourOfDay + ":" + minute);
            }
        });
    }

}

View more Tutorials: