Error using Material 3 TextField: "None of the following candidates is applicable"

1 day ago 1
ARTICLE AD BOX

I am making a small program to control some remote devices and I want to take data from a time picker and show it in a text field.

However, Android Studio marks my TextField with this error:

None of the following candidates is applicable ...

var selectedTime: TimePickerState? by remember { mutableStateOf(null)}

@Composable fun TimePickerDialog(context: Context, hourSet : Int?, minuteSet : Int?) {

var showTimePicker by remember { mutableStateOf(true) } val calendar = Calendar.getInstance() var hourForPicker: Int = hourSet ?: calendar[Calendar.HOUR_OF_DAY] var minuteForPicker: Int = minuteSet ?: calendar[Calendar.MINUTE] val timePickerState = rememberTimePickerState( initialHour = hourForPicker, initialMinute = minuteForPicker, is24Hour = true ) Box(propagateMinConstraints = false) { 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 = "" val string_onoff: String = stringResource(R.string.ON) val device: List<Devices> = devicesDao?.getItem(device_number) as List<Devices> 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" } TextField( readOnly = false, enabled = false, value = timeToShow, label = Text(on_or_off), placeholder = Text(stringResource(R.string.click)), modifier = Modifier.clickable { TimePickerDialog(context, hourSet, minuteSet) } ) 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://github.com/DarioLobos/DC-AC-converter-and-control-remote-compose-Android/blob/main/main/java/com/example/dc_acconverterandcontrolremote/DeviceScheduler.kt

Read Entire Article