Как изменить текст кнопки при нажатии? kotlin

У меня есть функция, срабатывающая при нажатии кнопки:

    fun cellPress(view: View) {

    }

как мне изменить текст кнопки, не используя findViewById<>()?

Что - то вроде этого:

    fun cellPress(view: View) {
        view.setText("text")
    }

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

Автор решения: Sergei Buvaka

Если View в этом методе как раз и является той кнопкой, то вы можете использовать рекомендацию @Alex_Skvortsov. Правда я бы сделал немного по другому. Т.к. у вас приходит View на вход, то предполагается, что там может быть не только Button.

Поэтому я бы сделал проверку:

if(view is TextView) { // поскольку вам нужно менять текст, то вы можете проверять что это TextView, а не Button т.к. Button наследуется от TextView
    view.text = "your text"
}

Еще можно проверить по id. Если вы знаете id вашей кнопки в разметке.

if(view.id == R.id.your_button) {
    (view as TextView).text = "your text"
}

Если View это не сама кнопка, а контейнер в котором сама кнопка вы можете использовать метод findViewById():

view.findViewById(R.id.your_button)
→ Ссылка