Вывод: кнопку верстай в XML, обработчик пиши в Kotlin, и не парься насчёт остального.
Причины, почему именно так.
Через чистый XML можно нарисовать кнопку целиком, но клик всё равно придётся ловить кодом, XML логику не умеет, только внешний вид и расположение элементов на экране. Значит часть работы через разметку, часть через код, это не вопрос выбора, а как оно вообще устроено в Android.
Полностью кодом, без XML, кнопку тоже можно создать программно через конструктор Button(context), но тогда придётся руками задавать размеры, отступы, положение на экране, всё то, что XML делает наглядно и быстро. Для новичка это лишняя боль без выгоды, такой подход используют разве что когда кнопки создаются динамически в цикле, число которых заранее неизвестно.
View Binding вместо findViewById - отдельная тема, но если он уже подключён в проекте, используй его, он безопаснее: компилятор сразу подскажет об ошибке, если ты опечатался в id кнопки, а с findViewById такая ошибка вылезет только в момент запуска приложения, и найти её сложнее.
Обработчик клика вешается один раз, обычно в методе onCreate, внутри него можно менять текст, скрывать элементы, запускать другой экран, короче делать что угодно с интерфейсом.
Итог: XML для внешнего вида, Kotlin для поведения, это не прихоть Google, а разделение ответственности, которое потом сильно упрощает жизнь на больших проектах.
Лучший ответ
4o
4o
Как сделать кнопку android studio?
Ответ: для начала проще добавить кнопку через XML-разметку, а логику нажатия писать в коде, это стандартный подход, который используют почти все. Пример: в файле activity_main.xml добавляешь элемент Button с id, скажем myButton, и текстом на нём. В MainActivity.kt находишь эту кнопку по id через findViewById или через View Binding, если он подключён в проекте, и вешаешь на неё обработчик setOnClickListener. Внутри обработчика меняешь текст другого элемента, например TextView, через его свойство text. По сути кнопка сама по себе ничего не делает, вся логика нажатия описывается именно в этом обработчике, и его можно расширять чем угодно.