Создание кнопки java android studio

Содержание
  1. Полный список
  2. Создаем кнопку в Android. Пример работы с виджетом Button в Android
  3. Создаем кнопку в Android
  4. Как работают кнопки? Что происходит в каждом виджете Button?
  5. Инициализация кнопки в Android
  6. Android. Работа с кнопками (Button), событие нажатия на кнопку в мобильном приложении
  7. Подготовка
  8. Обработка события нажатия на кнопку в приложении
  9. 1 способ. Обработка события нажатия с помощью метода setOnClickListener
  10. 2 способ. Обработка события нажатия с помощью интерфейса OnClickListener
  11. 3 способ. Обработка события нажатия с помощью атрибута onClick
  12. 3 в 1. Все 3 способа в одном примере
  13. Один обработчик нажатия для нескольких кнопок
  14. Один обработчик нажатия кнопки для 1-го способа, setOnClickListener
  15. Один обработчик нажатия кнопки для 2-го способа, интерфейс OnClickListener
  16. Один обработчик нажатия кнопки для 3-го способа, атрибут onClick
  17. Обработчик события непосредственно при нажатии на кнопку
  18. Дополнительно
  19. Сделать кнопку недоступной
  20. Получить текст кнопки

Полный список

В этом уроке мы:

— научимся обрабатывать нажатие кнопки и узнаем, что такое обработчик

Project name: P0091_OnClickButtons
Build Target: Android 2.3.3
Application name: OnClickButtons
Package name: ru.startandroid.develop.onclickbuttons
Create Activity: MainActivity

В layout-файл main.xml напишем следующее и сохраним:

У нас есть TextView с текстом и две кнопки: OK и Cancel. Мы сделаем так, чтобы по нажатию кнопки менялось содержимое TextView. По нажатию кнопки OK – будем выводить текст: «Нажата кнопка ОК», по нажатию Cancel – «Нажата кнопка Cancel».

Открываем MainActivity.java. Описание объектов вынесем за пределы метода onCreate. Это сделано для того, чтобы мы могли из любого метода обращаться к ним. В onCreate мы эти объекты заполним с помощью уже пройденного нами метода findViewById. В итоге должен получиться такой код:

Обновляем секцию import (CTRL+SHIFT+O). Объекты tvOut, btnOk и btnCancel соответствуют View-элементам экрана и мы можем с ними работать. Нам надо научить кнопку реагировать на нажатие. Для этого у кнопки есть метод setOnClickListener (View.OnClickListener l). На вход подается объект с интерфейсом View.OnClickListener. Именно этому объекту кнопка поручит обрабатывать нажатия. Давайте создадим такой объект. Код продолжаем писать в onCreate:

Eclipse подчеркивает OnClickListener красной линией

т.к. пока не знает его. Необходимо обновить секцию import. Жмем CTRL+SHIFT+O, Eclipse показывает нам, что он знает два интерфейса с именем onClickListener и предлагает выбрать. Нам нужен View.OnClickListener, т.к. метод кнопки setOnClickListener принимает на вход именно его.

Итак, мы создали объект oclBtnOk, который реализует интерфейс View.OnClickListener. Объект содержит метод onClick – это как раз то, что нам нужно. Именно этот метод будет вызван при нажатии кнопки. Мы решили, что по нажатию будем выводить текст: «Нажата кнопка ОК» в TextView (tvOut). Реализуем это.

В методе onClick пишем:

Обработчик нажатия готов. Осталось «скормить» его кнопке с помощью метода setOnClickListener.

В итоге должен получится такой код:

Все сохраняем и запускаем. Жмем на кнопку ОК и видим. Что текст изменился

Нажатие на Cancel пока ни к чему не приводит, т.к. для нее мы обработчик не создали и не присвоили. Давайте сделаем это аналогично, как для кнопки OK. Сначала мы создаем обработчик:

Читайте также:  Iphone android usb otg

Потом присваиваем его кнопке:

Сохраняем, запускаем, проверяем. Обе кнопки теперь умеют обрабатывать нажатия.

Давайте еще раз проговорим механизм обработки событий на примере нажатия кнопки. Сама кнопка обрабатывать нажатия не умеет, ей нужен обработчик (его также называют слушателем — listener), который присваивается с помощью метода setOnClickListener. Когда на кнопку нажимают, обработчик реагирует и выполняет код из метода onClick. Это можно изобразить так:

Соответственно для реализации необходимо выполнить следующие шаги:

— создаем обработчик
— заполняем метод onClick
— присваиваем обработчик кнопке

и система обработки событий готова.

На следующем уроке:

— научимся использовать один обработчик для нескольких View-элементов
— научим Activity выступать в качестве обработчика

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме

Источник

Создаем кнопку в Android. Пример работы с виджетом Button в Android

В этой статье мы научимся использовать виджет Button в Android. Также здесь рассказывается о том, как обрабатывать нажатия, применять стили, работать с xml-макетом кнопки, а также управлять виджетом Button в коде. Урок будет полезен для начинающих андроид-программистов.

Сегодня мы узнаем как задавать различные расположение для кнопок, менять фоновые изображения и обрабатывать события, связанные с виджетом Button .

Создаем кнопку в Android

Кнопка представляет собой кликабельный Android виджет, который может принимать различные формы и реагировать на действия пользователя, а именно: обычное нажатие, длительное нажатие и т.д. Виджет Button доступен в пакете android.widget.Button .

Как и любой другой виджет, вы можете объявить Button в макете вашей активности или фрагмента, также создать кнопку программно.

Давайте создадим первые кнопки и зададим различные свойства каждой:

Как работают кнопки? Что происходит в каждом виджете Button?

Android отрендерит приведенный выше XML-код макета следующим образом:

  1. Android увидит тип макета LinearLayout установит его в вертикальное положение.
  2. Параметр layout_width укажет ширину макета, а layout_height — высоту. Если в каком-то из значений будет match_parent , то кнопка растянется на весь экран; wrap_content укажет, что размеры кнопки должны быть достаточными, чтобы вместить вложенный контент (текст, картинка).
  3. android:layout_gravity определит позиционирование виджета Button относительно родительского компонента.
  4. android:gravity определит выравнивание содержимого Button . Она задается одной из констант left, right, center_vertical, center_horizontal, center .

Как выглядит макет после рендеринга (прорисовки макета после анализа):

Инициализация кнопки в Android

Теперь, когда у нас уже есть готовый макет с четырьмя разными по форме и размеру кнопками, давайте инициализируем их в коде нашей Activity :

Источник

Читайте также:  Android dev in linux

Android. Работа с кнопками (Button), событие нажатия на кнопку в мобильном приложении

Кнопка (Button) — один из самых важных элементов управления приложением. В статье описаны простые примеры работы с кнопками в Android приложении

Подготовка

Создаем проект, выбираем Empty Activity, Activity Name: MainActivity, Layout Name: activity_main. В лайоуте /res/layout/activity_main.xml оставляем вывод текста TextView, добавляем кнопку Button и прописываем для каждого элемента свой id. После нажатия на кнопку будем выводить текст в TextView, который покажет, что событие было обработано.

В итоге /res/layout/activity_main.xml будет выглядеть примерно следующим образом:

TextView и Button — 2 элемента которые нам понадобятся.

Далее в MainActivity (MainActivity.java) добавим описание Button и TextView, для возможности обращения к ним из любого метода класса, инициализируем их в методе onCreate() и заполним с помощью метода findViewById():

Приступаем к обработке события нажатия на кнопку.

Обработка события нажатия на кнопку в приложении

1 способ. Обработка события нажатия с помощью метода setOnClickListener

Метод setOnClickListener() прослушивает событие нажатия на кнопку. В методе onCreate() вводим имя кнопки myButton, ставим точку (.) и вводим setO, далее студия сама предложит варианты, вот что получится:

Внутри скобок набираем new O, далее студия подскажет то что необходимо (OnClickListener), в итоге получим следующее:

Далее с помощью метода setText добавляем изменение текста в TextView:

В итоге обработчик нажатия на кнопку будет выглядеть так:

Сохраняем, запускаем приложение и жмем кнопку.

Полный код MainActivity (MainActivity.java):

Код метода OnClickListener() можно вынести отдельно, например для работы с несколькими кнопками. Создаем обработчик нажатия:

И присваиваем обработчик для кнопки:

В таком случае MainActivity (MainActivity.java) примет вид:

2 способ. Обработка события нажатия с помощью интерфейса OnClickListener

Для реализация данного метода необходимо добавить в класс MainActivity интерфейс OnClickListener, делается это следующим образом — implements View.OnClickListener, после чего объявление класса примет вид:

После добавления интерфейса строка будет подчеркнута красным, все из-за того что у нас еще нет метода onClick() интерфейса OnClickListener, чтобы это исправить жмем Alt + Enter (если при нажатии ничего не происходит, то проверьте текущую раскладку, при кириллической раскладке комбинация может не работать, переведите ввод на латинскую раскладку, например на английский) в любом месте подчеркивания, далее выбираем Implemente Methods в открывшимся окне выбираем onClick и жмем ok. После чего в конец класса MainActivity будет добавлен следующий код:

В этот метод добавляем код, который необходимо выполнить по нажатию на кнопку:

Далее в методе onCreate() назначим обработчик для кнопки, в качестве параметра передаем this, т.е. текущий объект:

Сохраняем, запускаем приложение и жмем кнопку.

Полный код MainActivity (MainActivity.java):

3 способ. Обработка события нажатия с помощью атрибута onClick

В данном способе необходимо добавить атрибут onClick для нужной кнопки, есть несколько способов добавления этого атрибута:

1) Открываем activity_main.xml, во вкладке «Design» жмем на нужную кнопку и в окне «Properties«, ищем свойство onClick и вводим в пустое поле название метода для обработки события нажатия кнопки.

Читайте также:  Android studio unzip file

2) Или откройте файл activity_main.xml в режиме «Text» и добавьте в элемент Button атрибут onClick с названием метода обработки нажатия кнопки:

В обоих случаях, код файла activity_main.xml будет выглядеть следующим образом:

Далее открываем класс MainActivity (MainActivity.java) и добавляем код метода clickMyBtn():

Сохраняем, запускаем приложение и жмем кнопку.

Полный код MainActivity (MainActivity.java):

3 в 1. Все 3 способа в одном примере

Далее для закрепления можно реализовать все три способа на одном экране, для этого в main_activity.xml добавим 3 кнопки, по одной кнопке на каждый способ, (полный код main_activity.xml):

И сам класс MainActivity со всеми тремя способами (файл MainActivity.java):

Сохраняем, запускаем, проверяем.

Один обработчик нажатия для нескольких кнопок

Часто необходимо сделать один обработчик нажатия для нескольких кнопок, т.к. функционал может практически не отличаться. Приведем пример для всех 3-х способов.

Один обработчик нажатия кнопки для 1-го способа, setOnClickListener

И так в main_activity.xml имеются 3 кнопки:

Открываем класс MainActivity (MainActivity.java) и в обработчик добавляем разный вывод текста в зависимости от нажатой кнопки с помощью конструкции выборки switch case:

И присваиваем кнопкам обработчик:

Сохраняем, запускаем, пробуем.

Полный код MainActivity (MainActivity.java):

Один обработчик нажатия кнопки для 2-го способа, интерфейс OnClickListener

В данном случае main_activity.xml оставляем как было описано выше (с тремя кнопками) и меняем код класса MainActivity. Добавляем интерфейс, реализацию метода onClick():

И присваиваем кнопкам обработчик:

Сохраняем, запускаем, пробуем.

Полный код класса MainActivity (MainActivity.java):

Один обработчик нажатия кнопки для 3-го способа, атрибут onClick

Для этого способа необходимо открыть activity_main.xml и добавить для всех кнопок атрибут android:onClick=»clickMyBtn», для всех кнопок один метод:

В класс MainActivity добавляем метод для обработки нажатия:

Сохраняем, запускаем, пробуем.

Полный код класса MainActivity будет выглядеть следующим образом (MainActivity.java):

Обработчик события непосредственно при нажатии на кнопку

Все выше описанные методы обработки нажатия на кнопку в приложении будут срабатывать после того как вы уберете палец с кнопки, т.е. на отжатие кнопки. Для того что бы добавить обработчик непосредственно при касании, нажатии, на кнопку необходимо использовать слушатель OnTouchListener(). Попробуем его использовать.

В activity_main.xml добавим одну кнопку и текст:

А в класс MainActivity добавляем setOnTouchListener(), в метод onCreate():

Метод onTouch() содержит параметр MotionEvent, который позволяет настроить обработку в зависимости от касания.

ACTION_DOWN — событие касания по экрану (в данном случае кнопки).

ACTION_UP — соответственно срабатывает когда вы уберете палец с экрана (элемента).

Выведем в TextView информацию при нажатии на кнопку и отжатие:

Сохраняем, запускаем и пробуем.

Полный код класса MainActivity (MainActivity.java):

Дополнительно

Сделать кнопку недоступной

В классе MainActivity в методе onCreate() добавляем следующий код:

Такой код пригодится, если необходимо выключить кнопку при определенных условиях.

Так же можно отключить кнопку в activity_main.xml с помощью атрибута android:enabled=»false»:

Получить текст кнопки

Если у вас есть вопросы или предложения по улучшению кода описанного в статье пишите в комментариях.
Я всегда открыт к конструктивному диалогу

Источник

Оцените статью