Как выбрать время с помощью материального дизайна? - PullRequest
1 голос
/ 13 июля 2020

как выбрать время с помощью материала: 1.3.0-alpha01, Я ищу средство выбора времени после скриншота, который я нашел в материале io.

Я пробовал, чтобы средство выбора даты работало сборщик времени материалов

Выбор даты материала

//Creating a MaterialDatePicker.Builder instance that gives us a single date selector.
val builder : MaterialDatePicker.Builder<*> = MaterialDatePicker.Builder.datePicker() // 1
//Building-up the MaterialDatePicker by calling a builder.build function
val picker : MaterialDatePicker<*> = builder.build()  // 2
//Display the Material Date Picker.
picker.show(requireActivity().supportFragmentManager, picker.toString())   // 3

Простой выбор времени

  val cal = Calendar.getInstance()
            val timeSetListener = TimePickerDialog.OnTimeSetListener { _, hour, minute ->
                cal.set(Calendar.HOUR_OF_DAY, hour)
                cal.set(Calendar.MINUTE, minute)
                //textView.text = SimpleDateFormat("HH:mm").format(cal.time)
            }
            val time = TimePickerDialog(context, timeSetListener, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), true)
            time.setTitle("")
            time.show()

Ответы [ 2 ]

3 голосов
/ 14 июля 2020

Вы можете использовать новый MaterialTimePicker, представленный в Библиотеке компонентов материалов.

Примечание: этот код требует как минимум версия 1.3.0-alpha02.

import com.google.android.material.timepicker.MaterialTimePicker;

MaterialTimePicker timePickerDialog = MaterialTimePicker.newInstance();
timePickerDialog.show(getSupportFragmentManager(), "fragment_tag");
timePickerDialog.setTimeFormat(TimeFormat.CLOCK_24H);        

timePickerDialog.setListener(dialog -> {
    int newHour = dialog.getHour();
    int newMinute = dialog.getMinute();
    onTimeSet(newHour, newMinute);
});


private void onTimeSet(int newHour, int newMinute) {
    //...do something
}

enter image description here

Using the same code with:

    MaterialTimePicker timePickerDialog = MaterialTimePicker.newInstance();
    timePickerDialog.show(getSupportFragmentManager(), "fragment_tag");
    timePickerDialog.setTimeFormat(TimeFormat.CLOCK_12H);

введите описание изображения здесь

0 голосов
/ 29 июля 2020

МАТЕРИАЛ ВРЕМЕНИ Чтобы использовать MATERIAL TIME PICKER , добавьте следующую зависимость в файл build.gradle вашего проекта:

   implementation 'com.google.android.material:material:1.3.0-alpha02'

Kotlin выбор времени с использованием материала: 1.3.0-alpha02

val timePickerDialog = MaterialTimePicker.newInstance();
            timePickerDialog.show(requireActivity().supportFragmentManager, "fragment_tag");
            // Types of formats for the time pickeer
            timePickerDialog.setTimeFormat(TimeFormat.CLOCK_12H)//CLOCK_24H
            timePickerDialog.setListener { dialog: MaterialTimePicker ->
                val newHour = dialog.hour
                val newMinute = dialog.minute
}
...