めちゃくちゃ参考にさせていただいたサイト
https://developer.android.com/reference/com/google/android/material/timepicker/MaterialTimePicker
https://material.io/components/time-pickers/android#using-time-pickers
MaterialDatePicker とほぼ一緒
https://prgrm.work/archives/1124
setInputMode はテキスト入力と時計で入力できるモードがある。setMinute,setHour はデフォルトの時間。
中身
import android.app.Activity
import android.widget.EditText
import androidx.fragment.app.FragmentActivity
import com.google.android.material.timepicker.MaterialTimePicker
import com.google.android.material.timepicker.MaterialTimePicker.INPUT_MODE_CLOCK
import java.util.*
class MTimePicker {
fun showTimePickerDialog(item: EditText,calendar:Calendar,activity:Activity){
val timePicker =
MaterialTimePicker.Builder().setHour(12).setInputMode(INPUT_MODE_CLOCK).setMinute(10).build().apply {
addOnPositiveButtonClickListener(){
val timeText = hour.toString() + ":" + minute.toString()
item.setText(timeText)
}
}
timePicker.show((activity as FragmentActivity).supportFragmentManager,"TAG")
}
}呼び方
val mTimePicker = MTimePicker() mTimePicker.showTimePickerDialog(editText,calendar,activity)
引数は適当に設定。
activity を引数にとるから activity内で button 押したときとかにいれるのがいいと思う。もとの関数は editText を押したときようだけど item を Button とかにもできる。
MaterialDatePicker を入力した後 MaterialTimePicker を表示したい場合
import android.app.Activity
import android.widget.EditText
import androidx.fragment.app.FragmentActivity
import com.google.android.material.timepicker.MaterialTimePicker
import com.google.android.material.timepicker.MaterialTimePicker.INPUT_MODE_CLOCK
import java.util.*
class MTimePicker {
val datePicker = MDatePicker()
fun showTimePickerDialog(item: EditText,calendar:Calendar,activity:Activity){
val timePicker =
MaterialTimePicker.Builder().setHour(12).setInputMode(INPUT_MODE_CLOCK).setMinute(10).build().apply {
addOnPositiveButtonClickListener(){
val timeText = hour.toString() + ":" + minute.toString()
item.setText(timeText)
}
}
timePicker.show((activity as FragmentActivity).supportFragmentManager,"TAG")
datePicker.show(item,calendar,activity)
}
}後に書いたやつが先にでてくるらしい。show はそういう感じなのかな?
datepicker,timepicker はWebで無料で使えないらしい。いずれ android もそうなるのかな?