Как сделать кнопку по центру android studio

Добавил пользователь Alex
Обновлено: 05.10.2024

Класс Button — самый используемый из всех элементов управления. Так как является наследником Textview, то использует многие знакомые нам атрибуты: textColor, textSize и другие.

Если разместить на экране кнопку и нажать на неё, то ничего не произойдёт. Необходимо написать код, который будет выполняться при нажатии. Существует несколько способов обработки нажатий на кнопку. Итак, обработка событий.

Обработка событий

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

В этой модели обработки событий слушатели должны:

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

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

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

Методы, принимающие и обрабатывающие события, определены в наборе интерфейсов .

Класс view содержит набор интерфейсов, которые называются on. Listener(), в каждом из которых объявлен единственный абстрактный метод обратного вызова. Этот метод необходимо переопределить в пользовательском классе. Его будет вызывать система Android, когда экземпляр view (или потомок), к которому был подсоединен слушатель события, вызывается пользовательским взаимодействием с интерфейсом приложения.

Всего класс view содержит шесть интерфейсов:

  • OnClickListener;
  • OnLongClickListener;
  • OnFocusChangeListener;
  • OnKeyListener;
  • OnTouchListener;
  • OnCreateContextMenuListener.

Обработка нажатия кнопки

Создайте новый проект MyButton. Откройте файл разметки и разместите три кнопки с идентификаторами button1, button2 и button3, надписями "Button l", "Button 2" и "Button 3", а также две метки с идентификаторами textView1 и textView2 и надписями: у первой ”Нажата кнопка:”, а у второй оставляем значение по умолчанию ”TextView”. Графическая разметка с обозначениями представлена ниже.

Существует несколько способов обработки нажатия на кнопку. Рассмотрим их.

Первый способ

Первый способ разработан для Android и использует атрибут XML – onClick, который записывается в XML-коде элемента управления (в частности и Button), нажатие которого мы собираемся обрабатывать.

android:onClick="onMyClick"

android:onClick – атрибут, которому присваивается имя метода обработки события

onMyClick – метод, который будет обрабатывать нажатие. Имя метода должно быть осмысленным. Сам метод записывается в программном коде активности.

В классе активности метод записывается в следующем формате:

Попробуем этот метод на практике. Сделайте следующее:

1. Для каждой кнопки в XML-коде кнопки запишете обработчик:

android:onClick="onMyClick"

Обработчик будет один для всех кнопок.

2. В классе public class MainActivity extends Activity

Запишем один метод onMyClick, который будет обрабатывать все кнопки

Второй способ

Второй способ является традиционным для Java и использует интерфейсы. Для этого в нашем классе необходимо реализовать интерфейс View.OnClickListener. Данный интерфейс содержит единственный метод:

abstract void onClick(View v), который необходимо определить в нашем классе.

Подключение интерфейса выполняется следующим образом:

1. В классе public class MainActivity extends Activity напечатаете implements View.OnClickListener

Для написания используйте подсказки Eclipse: наберите слово i и нажмите комбинацию клавиш Ctrl+Space для вывода вариантов продолжения. Eclipse предложит ключевое слово implements, нажимаем Enter. Далее, набираем View, ставим точку, Eclipse предложит список вариантов, выбираем OnClickListener.

Eclipse создаст заготовку метода onClick(View v):

2. В методе protected void onCreate(Bundle savedInstanceState)

выполняем поиск наших кнопок (findViewById) и регистрируем каждую кнопку как слушателя событий с помощью метода setOnClickListener():

Все готово. Осталось написать код обработчика нажатия кнопок.

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

Удалим из XML-файла для всех кнопок

android:onClick="onMyClick"

полностью заменим метод public void onMyClick(View v) < …>.

Напишем обработчик onClick(View v). Код этого обработчика повторяет код прежнего обработчика: различия только в названии метода и выводимом тексте.

Продолжаем изучать основы разработки приложений с использованием языка Kotlin.

Это уроки по основам разработки, и мы еще не дошли до собственно программирования на языке Kotlin, поскольку разработка приложений – это не только программирование. В этом уроке мы рассмотрим ресурсы приложения, а также создадим макеты для экранов приложения. Писать программные конструкции на языке Kotlin мы начнем в следующем уроке.

Макеты описаны в XML. Редактор макета позволяет вам определять и изменять макет либо путем кодирования XML, либо с помощью интерактивного визуального редактора. Вы можете переключаться между редактированием макета в XML и в редакторе визуального дизайна и создавать макеты любым способом.

1 . Редактор макета в Android Studio

Каждый элемент в макете представляет собой view, или представление. В этой задаче изучим интерфейс редактора макетов в Android Studio и разберемся, как изменять значения свойств для view.

Что вы узнаете

  • Как использовать редактор макетов.
  • Как установить значения свойств.
  • Как добавить строковые ресурсы.
  • Как добавить цветовые ресурсы.

Откройте редактор макета

Изучите и измените размер дерева компонентов

Исследуйте иерархии представлений view

  1. В дереве компонентов обратите внимание, что корень иерархии представлений view представляет собой компонент разметки ConstraintLayout.Каждый макет должен иметь корневой view, содержащий все остальные view. Корневой view всегда представляет собой группу представлений ViewGroup, которая представляет собой view, которое содержит другие view. ConstraintLayout — один из примеров группы представлений ViewGroup. Его название содержит слово constraint – ограничения, и это отражает суть взаимодействия элементов, добавляемых в этот корневой view. Познакомится с другими корневыми элементами разметки, такими как RelativeLayout, LinearLayout и другими можно по ссылкам в описании видео. /linearlayout-i-relativelayout-osobennosti-maketov-ekranov-android/

Далее в этом уроке мы рассмотрим работу с ConstraintLayout более подробно.

После серии сложных уроков, спустимся немного с небес программирования и уделим внимание начинающим :). В сегодняшнем уроке будет показано, как обрабатывать нажатие кнопок Button в Android приложении. Мы рассмотрим два основных метода, которые наиболее используемые в практике любого программиста.

Итак, создаем новый проект, как это сделать читаем тут. Все названия по умолчанию, выбираем Blank Activity. Для начала нужно создать несколько кнопок, над которыми мы будем издеваться. В файле activity_main.xml создаем наши кнопки:

Как видите, мы создали всего 2 кнопочки (хватит с нас):

Теперь приступаем к первому методу обработки нажатия. В нем мы зададим для каждой из наших кнопок свой собственный метод обработки нажатия. Как это сделать? К коду обоих кнопок мы должны добавить строку, задающую ей нажатие:

В кавычках "" мы задаем имя метода обработки щелчка, оно может быть любое, как, к примеру, и текст на кнопке. Зададим для первой кнопки метод Click1, а для второй - Click2:

Никаких визуальных изменений при этом вид кнопки не приобрели. Но сама по себе эта строка не придала кнопкам чудесных свойств, это еще не сам метод обработки щелчка, мы просто присвоили кнопкам функцию нажатия. Метод обработки этих нажатий нужно создать, а также описать, что будет происходить при нажатии. Чтобы сделать это, мы:

- ставим курсор на слово Click1 в первой кнопке;

- нажимаем комбинацию клавиш Alt+Enter;

- мы видим появившееся меню, которое предлагает нам создать метод обработки щелчка:

смело нажимаем на первую строку Create 'Click1(View)' in 'MainActivity'. После выбора этой строки, нас кидает а файл MainActivity.java, где мы и наблюдаем свой созданный метод для обработки нажатия кнопки 1:

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

На этом первый метод реализован. Можете запустить приложение на эмуляторе либо устройстве и посмотреть на результат:

Первый метод хорош когда у нас в приложении мало кнопок, либо она вообще одна. Тогда при обработке нажатия таким методом наш код не будет требовать ни много места, ни усилий. Но вот когда у нас много кнопок, а чаще всего их ну точно не одна, то лучше использовать второй метод. Он немного посложнее, но в то же время и удобнее.

Теперь, в отличии от первого способа, мы должны создать один обработчик нажатия, общий для всех кнопок. Поэтому в кодах обоих кнопок меняем в строках android: OnClick название метода обработки, оно будет одинаково для обоих кнопок:

Аналогично первому способу, создаем метод обработки (курсор на Click, Alt+Enter, ну вы поняли).

Переходим к работе в файле MainActivity.java. Ниже метода onCreate у нас создан нужный нам метод обработки нажатий:

Второй метод заключается в том, что для всех кнопок будет использоваться всего один метод обработки нажатий. С помощью команды switch (v.getId()) мы будем обращаться к необходимым кнопкам по их id (а для каждой кнопки мы его задали строчкой android:id="" , id первой кнопки "b1" , второй - "b2" ).

В switch (view.getId()) мы с помощью команды case R.id. обращаемся к каждой нашей кнопке по ее id адресу и обрабатываем ее нажатие:

Проверим работоспособность этого метода. Запускаем приложение, нажимаем по кнопкам и видим аналогичный первому способу результат.

Итак, в прошлый раз мы создали первое приложение для андроид, используя AndroidStudio, наше приложение получилось проще некуда, в поле для ввода пишем текст, при нажатии на кнопку BUTTON это текст попадал в текстовое поле, меняя тем самым надпись.

Проще только форма с кнопкой закрыть приложение, кстати, а как изменить текст на кнопке спросите вы? Очень просто, аж двумя способами, не считая программного…

Первый способ изменить текст на кнопке - hardcore

Откроем файл main.xml, и в свойствах элемента Button - android:text="Button" в скобках напишем "Нажми меня!", перейдем в Design вид и надпись на кнопке поменяется. Хотя это считается хардкором и вообще дурным тоном.

Второй способ изменить текст на кнопке - strings.xml

Слева в инспекторе проекта по путь res/values/ откроем файл strings.xml (строки), добавим новую строку либо скопировав предыдущую, либо набрав вручную либо нажав комбинацию клавиш ctrl+D, продублировав верхнюю строку. Поменяем свойство name на любое на английском, и главное имя должно быть уникальное, иначе получите предупреждение об ошибке, я написал "my_button".

Между скобками тот же текст "Нажми меня!", сохранили и закрыли. Теперь в main.xml свойство текст у кнопки в скобках напишем "@string/my_button", система сама вам поможет при вводе текста, и предложит в раскрывающемся списке содержимое файла strings.xml.

Перейдем снова с дизайнерский вид и увидим что текст изменился. Далее у поля ввода текста EditText оставим значение text пустым, что бы надпись Name не появлялась при запуске приложения.

Новая кнопка - "Очистить"

Добавим перетаскиванием на форму еще одну кнопку, в файле strings.xml добавим еще одну текстовую строчку и именем "my_button2" и значением "Очистить".

Создадим переменную b2 типа Button и найдем ее по id через findviewById(R.id.button2), в main.xml button2 это id новой кнопки.

Как написать обработчик нажатия на кнопку

Напишем обработчик нажатия на кнопку b2, при этом переменная ed связанная с текстовым полем и txt наша надпись получат через функцию setText() текст "" (пустые скобки).

Проверим, запустив приложение, введем текст, нажмем на кнопку "Нажми меня!" затем на кнопку "Очистить", все работает.

Теперь добавим ниже второй кнопки еще одну, она нужна будет для закрытия приложения, снова в strings.xml добавим строку, нажав ctrl+D, с именем "my_button3"и текстом "Выход", сохраним и закроем.

В файле main.xml для id button3 в свойстве text пропишем "@string/my_button3".

Снова создадим переменную типа button b3, свяжем ее через id используя findViewById(R.id.button3), и напишем еще один обработчик нажатия на кнопку с одной функцией finish().

Запуск приложения в эмуляторе

Как можно догадаться из названия finish он и в Африке финиш, при нажатии на эту кнопку наше приложение будет закрыто.

Android приложение за 5 минут. Часть 2

Запустим приложение и проверим, как все работает. Текст добавляется, затем очищается, и форма закрывается, как и было задумано.

Полный текст main.xml

Полный текст MainActivity.java

Полный текст strings.xml

Как создать андроид приложение за 5 минут (Продолжение):

Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!

Читайте также: