Я реализую пользовательскую клавиатуру и представляю клавиши 0-9 и десятичный разделитель как объекты Button. Затем у меня есть один последний ключ, который является клавишей возврата и представлен в виде ImageButton.
Когда я обрабатываю события щелчка, я знаю, что если пользователь нажал кнопку, он добавляет элемент в текстовое поле, и если они щелкнули по кнопке ImageButton и удаляют последний элемент из текстового поля.
Поскольку на клавиатуре есть только два возможных типа кнопок, я хотел реализовать эту логику c с блоком when без использования ветви else. Является ли это возможным? Глядя на запечатанную документацию класса, я не думаю, что это может быть, но просто прошу убедиться.
Я хотел бы сделать что-то вроде этого:
sealed class KeyboardButton {
class Button
class ImageButton
}
fun handleKeyPress(button: View) {
when(button) {
is KeyboardButton.Button -> // append element to text
is KeyboardButton.ImageButton -> // remove last element from text
}
}