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.
По умолчанию 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" />