TimePicker
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
Для додавання слухача змін у 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" />
