以前からあるDatePikderはこれ https://developer.android.com/reference/android/app/DatePickerDialog
あたらしく、MaterialDatePickerというのがある。 これはまず、appcompatが必要なdので
val appcompat_version = “1.4.1”
implementation("androidx.appcompat:appcompat:$appcompat_version")
をdependenciesにいれてから、 class MainActivity : AppCompatActivity(){// ComponentActivity() {
としてMainアクティビティをAppCompatActivityにしておいて
val context = LocalContext.current
Button(onClick = {
Log.d("InputScreen", "DataPicker Button clicked")
(context as AppCompatActivity).let {
val picker = MaterialDatePicker.Builder.datePicker().build()
picker.show(it.supportFragmentManager, picker.toString())
Log.d("InputScreen", "Picker showed")
picker.addOnPositiveButtonClickListener {
val dateString = SimpleDateFormat("yyyy-MM-dd").format(Date(it))
Log.d("InputScreen","picker.selection:${picker.selection} ${dateString}")
}
}
},
content={ Text(text = ("DatePicker"), color= Color.Red)}
)
とすればMaterialDatePickerが使える (contextはMainアクティビティ<ーAppCompatActivity()を継承している)
通常のは val mYear: Int val mMonth: Int val mDay: Int val now = Calendar.getInstance() mYear = now.get(Calendar.YEAR) mMonth = now.get(Calendar.MONTH) mDay = now.get(Calendar.DAY_OF_MONTH) now.time = Date() val date = remember { mutableStateOf("") } val datePickerDialog = DatePickerDialog( context, { _: DatePicker, year: Int, month: Int, dayOfMonth: Int -> val cal = Calendar.getInstance() cal.set(year, month, dayOfMonth) Log.d(“Datepicked”, “$year $month $dayOfMonth”) //date.value = getFormattedDate(cal.time, “dd MMM,yyy”) }, mYear, mMonth, mDay )
datePickerDialog.show()
日付の変換方法 String dateString = new SimpleDateFormat(“MM/dd/yyyy”).format(new Date(TimeinMilliSeccond));