Это то, что я собираюсь сделать
- Создание функций высшего порядка вне любого класса, чтобы вы могли использовать их везде
fun EditText.isIntValue():Int? = this.text.toString().toIntOrNull()
Создать функцию для получения всего EditText, который вы хотите проверить
fun findGreaterOrEqualThen (value : Int, editTextList : MutableSet<EditText>){
var totalGreaterOrEqual = 0
var totalLessThenValue = 0
fun checkNumber(number : Int) { when {number >= value -> totalGreaterOrEqual++ else -> totalLessThenValue++ } }
editTextList.forEach {editText -> editText.isIntValue()?.let { checkNumber(it) } }
tv_texto.text = ("los numeros mayores que $value son $totalGreaterOrEqual los menores son $totalLessThenValue ")
}
при нажатии кнопки
yourButton.setOnClickListener {
findGreaterOrEqualThen(7,
mutableSetOf(
ed_valor1,
ed_valor2,
ed_valor3,
ed_valor4)
)
}
ПРИМЕЧАНИЕ ****
Старайтесь не использовать .toInt()
Поскольку вы можете получить ошибка, если эта строка не может быть приведена к Int
Что означает .toIntOrNull ()?
Это означает, что она вернет Int, если она может привести в противном случае вернуть ноль
Что такое .let {}
Я приведу вам пример
"15" .toIntOrNull () ?. let {}
это означает, что он будет пытаться разыграть "15" в Interger, поскольку вы можете видеть, что этот приём будет работать, потому что 15 - это число
what is ? after .toIntOrNull()
, это означает, что он проверяет, какой тип возврата .toIntOrNull () в этом примере мы возвращаем Interger 15
, поэтому, если он вернет Inter Value, он будет go при выполнении внутри? .let {}, но если это что-то вроде "Fifteen".toIntOrNull()
, это вернет null, поэтому, когда он равен NULL, он будет пропущен? .let {} function
Пример
editText.isIntValue()?.let {checkNumber(it) }
равно
if(editText.isIntValue() != null){ checkNumber(editText.isIntValue()) }