Не правильно определяется true и false из-за forEach
Функция всегда выдает false, даже если введены даты правильно. Как таковых ошибок нет.
Задача: если все поля из списка не пустые - начинается проверка на корректность даты всех этих полей, если хоть одно поле с ошибкой или есть пустое поле - код выводит false и дальше код не исполняется.
@RequiresApi(Build.VERSION_CODES.O)
fun FirstFragment.correctDateAll(): Boolean {
if ((listOfDates.forEach{i -> i.text}).toString().isNotEmpty()) {
@RequiresApi(Build.VERSION_CODES.O)
fun parseLocalDateOrNull(text: Unit, formatter: DateTimeFormatter) = try {
LocalDate.parse(text.toString(), formatter)
} catch (ex: DateTimeParseException) {
null
}
val dateFormatInput = DateTimeFormatter.ofPattern("dd.MM.uuuu").withResolverStyle(ResolverStyle.STRICT)
val dateCorrect = parseLocalDateOrNull(listOfDates.forEach{i -> i.text.toString()},dateFormatInput)
if (dateCorrect == null) {
Toast.makeText(requireActivity(), "Есть некорректная дата! ", Toast.LENGTH_SHORT).show()
return false
}
else
{
return true
}
}
else
{
return false
}
}
Думаю проблема в
val dateCorrect = parseLocalDateOrNull(listOfDates.forEach{i -> i.text.toString()}, dateFormatInput)
С массивами (списком) надо наверно не так работать. Может надо динамически создавать переменные по количеству i , затем им присваивать значения и проверять...?