Как изменить текст кнопки при нажатии? 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)