Не правильно определяется 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 , затем им присваивать значения и проверять...?


Ответы (0 шт):