Однако Android Studio помечает мое TextField этой ошибкой:
Ни один из следующих кандидатов не применим...
@Composable
fun TimePickerDialog(context: Контекст,hourSet: Int?, минутныйSet: Int?, timeToShow:String) {
Код: Выделить всё
var selectedTime: TimePickerState? by remember { mutableStateOf(null)}
var showTimePicker by remember { mutableStateOf(true) }
val calendar = Calendar.getInstance()
val hourForPicker: Int = hourSet ?: calendar[Calendar.HOUR_OF_DAY]
val minuteForPicker: Int = minuteSet ?: calendar[Calendar.MINUTE]
val timePickerState = rememberTimePickerState(
initialHour = hourForPicker,
initialMinute = minuteForPicker,
is24Hour = true
)
Box(propagateMinConstraints = false) {
Column(
modifier = Modifier
.fillMaxSize()
.padding(32.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(24.dp),
) {
Button(
onClick = { showTimePicker = true }
) {
Text(timeToShow)
}
if (showTimePicker) {
TimePicker(
state = timePickerState,
Modifier.fillMaxSize()
)
Button(
onClick = {
showTimePicker = false
Toast.makeText(context, R.string.setTimeCancel, Toast.LENGTH_SHORT).show()
})
{
Text(stringResource(R.string.cancel))
}
Button(
onClick = {
selectedTime = timePickerState
showTimePicker = false
Toast.makeText(context, R.string.setTimeCancel, Toast.LENGTH_SHORT).show()
}) {
Text(stringResource(R.string.confirm))
}
}
}
}
@Composable
fun EditTextONOFF(context: Context, device_number: Int, on_or_off: String, modifier: Modifier) {
var hourSet: Int? = 12
var minuteSet: Int? = 0
var timeToShow: String = stringResource(R.string.click)
val string_onoff: String = stringResource(R.string.ON)
val device: List = devicesDao?.getItem(device_number) as List
if (on_or_off == string_onoff) {
hourSet = device.get(0).hour_on
minuteSet = device.get(0).minutes_on
timeToShow = "$hourSet : $minuteSet"
} else {
hourSet = device.get(0).hour_off
minuteSet = device.get(0).minutes_off
timeToShow = "$hourSet : $minuteSet"
}
TimePickerDialog(context, hourSet, minuteSet, timeToShow)
if (selectedTime != null) {
if (on_or_off == string_onoff) {
device.get(0).hour_on = selectedTime!!.hour
device.get(0).minutes_on = selectedTime!!.minute
} else {
device.get(0).hour_off = hourSet
device.get(0).minutes_off = minuteSet
}
timeToShow = "$hourSet : $minuteSet"
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... -applicabl
Мобильная версия