TimePicker

Последнее обновление: 15.10.2021

TimePicker представляет виджет для выбора времени, который может отображать время либо в 24-часовом, либо в 12-часовом формате.

Среди атрибутов TimePicker следует выделить timePickerMode, который позволяет режим отображения и может принимать одно из двух значений: clock (отображение в виде часов) и spinner (отображение в виде спиннера).

Среди методов TimePicker можно отметить следующие:

  • int getHour(): возвращает час (в 24-часом формате)

  • int getMinute(): возвращает минуты

  • boolean is24HourView(): возвращает true, если используется 24-часовой формат

  • void setHour(int hour): устанавливает час для TimePicker

  • void setIs24HourView(Boolean is24HourView): устанавливает 24-часовой формат

  • void setMinute(int minute): устанавливает минуты

  • void setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener): устанавливает слушатель изменения времени в TimePicker в виде объекта TimePicker.OnTimeChangedListener

Определим TimePicker в 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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp">

    <TextView android:id="@+id/timeTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="26sp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TimePicker android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/timeTextView" />

</androidx.constraintlayout.widget.ConstraintLayout>

Применим некоторые методы TimePicker для управления его поведением:

package com.example.viewapp;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

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

        TextView timeTextView = findViewById(R.id.timeTextView);
        TimePicker timePicker = findViewById(R.id.timePicker);

        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {

                timeTextView.setText("Время: " + hourOfDay + ":" + minute);
                // или так
                // timeTextView.setText("Время: " + view.getHour() + ":" + view.getMinute());
            }
         });
    }
}

Для добавления слушателя изменения времени в TimePicker применяется метод setOnTimeChangedListener(), в который передается объект TimePicker.OnTimeChangedListener. Он имеет один метод - onTimeChanged(), который вызывается при каждом изменении времени в TimePicker. Этот метод принимает три параметра - сам элемент TimePicker, hourOfDay - установленный час и minute - установленные минуты. В данном случае просто передаем значение выбранного времени в TextView.

OnTimeChangedListener в TimePicker в Android и Java

По умолчанию TimePicker отображается в режиме "clock" или часы. Применим режим "spinner":

<TimePicker android:id="@+id/timePicker"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:timePickerMode="spinner"
	app:layout_constraintLeft_toLeftOf="parent"
	app:layout_constraintTop_toBottomOf="@+id/timeTextView" />
Spinner в TimePicker в Android и Java
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850