- Android. Работа с кнопками (Button), событие нажатия на кнопку в мобильном приложении
- Подготовка
- Обработка события нажатия на кнопку в приложении
- 1 способ. Обработка события нажатия с помощью метода setOnClickListener
- 2 способ. Обработка события нажатия с помощью интерфейса OnClickListener
- 3 способ. Обработка события нажатия с помощью атрибута onClick
- 3 в 1. Все 3 способа в одном примере
- Один обработчик нажатия для нескольких кнопок
- Один обработчик нажатия кнопки для 1-го способа, setOnClickListener
- Один обработчик нажатия кнопки для 2-го способа, интерфейс OnClickListener
- Один обработчик нажатия кнопки для 3-го способа, атрибут onClick
- Обработчик события непосредственно при нажатии на кнопку
- Дополнительно
- Сделать кнопку недоступной
- Получить текст кнопки
- Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились
- Сделать кнопку невидимой после нажатия
- Как я могу удалить кнопку или сделать ее невидимой в Android?
- Android. Скрытая кнопка, пока поля не заполнены
- 3 ответа 3
- MultiEditText.class
- CustomTextWatcher.class
- multi_edit_text.xml
- Всё ещё ищете ответ? Посмотрите другие вопросы с метками android button hide или задайте свой вопрос.
- Похожие
- Подписаться на ленту
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 и вводим в пустое поле название метода для обработки события нажатия кнопки.
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»:
Получить текст кнопки
Если у вас есть вопросы или предложения по улучшению кода описанного в статье пишите в комментариях.
Я всегда открыт к конструктивному диалогу
Источник
Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились
Кто знает ребят подскажите в чем проблема, есть метод обновляющий текст в TextView (всего 6 вопросов). Так вот когда вопросы кончаются необходимо сделать кнопку неактивной и вывести сообщение о том что вопросы кончились.
Метод обновления вопросов:
Так вот что происходит, сразу после запуска приложения: выводится сообщение об окончании вопросов и кнопка становится неактивной.
Что здесь я сделал не так?
P.S. программер я пока еще начинающий не судите строго)
Сделать кнопку «Завершить тест» неактивной, пока не отвечены все вопросы теста
Здравствуйте! помогите решить проблему. Я создаю тест в экселе, и нужно записать макрос, чтобы.
Как сделать кнопку неактивной, при условии что её свойство Caption пустое.
Добрый день. Нужно сделать кнопку неактивной, при условии что её свойство Caption пустое. Заранее.
Как хранить вопросы для игры «Что? Где? Когда?»
Здравствуйте! как можно вставить вопросы по примеру «ЧТО ГДЕ КОГДА» в игру. нужно сформировать.
как сделать что бы ответы на вопросы (переменная-х) записывались в массив?
Вот фрагмент программы-как сделать что бы ответы на вопросы (переменная-х) записывались в массив? .
Источник
Сделать кнопку невидимой после нажатия
После нажатия на кнопку она исчезает
Здравствуйте! Я никак не могу сделать так, чтобы при нажатии на кнопку она уменьшалась в.
Крашится программа после нажатия на кнопку
Когда нажимаю на клавишу button2 крашится программа в чем проблема? public class Main3Activity.
Метод вызывается только после второго нажатия на кнопку
есть метод import com.github.nkzawa.emitter.Emitter; import.
После нажатия на кнопку TBitBtn сделать кнопку не действующей
Как после нажатия на кнопку bitbtn1 кнопка становилась не действушей
Теперь вроде все норм, кроме. еще одной ошибки: Session ‘app’: Error Installing APK
Добавлено через 8 минут
Хотя все никак не смогу задушить жабу (Unfortunately, //название программы// has stopped.)
Текущий код:
(Main_Activity.java)
Сделать кнопку недоступной после нажатия на определённое время
Товарищи, как сделать чтобы после нажатии кнопки она стала недоступной в течении, например, 10.
Как сделать элементы неактивными после нажатия на кнопку
Добрый день. Необходимо составить программу тест по истории. Проблема в том, что после нажатия на.
Сделать кнопку невидимой
Добрый вечер. В Qt совсем недавно, занимаюсь переделкой одной программки и возникла такая проблема.
Как сделать кнопку невидимой
Сделал БитБтн невидимым visible=false и сверху с помощью Timage поставил картинку, нужно чтобы.
Сделать невидимой кнопку меню
чтобы при запуске программы кнопка была невидимой, а не после нажатия.
Сделать невидимой кнопку меню
Как сделать чтобы в зависимости от авторизовавшегося пользователя становились видимыми и невидимыми.
Источник
Как я могу удалить кнопку или сделать ее невидимой в Android?
Как удалить кнопку на Android или сделать ее невидимой?
Установите видимость кнопки на GONE (кнопка будет полностью «удалена» – пространство кнопок будет доступно для других виджетов) или INVISIBLE (кнопка станет «прозрачной» – ее пространство не будет доступно для других виджетов):
Сначала сделайте кнопку невидимой в xml-файле. Затем установите кнопку, видимую в java-коде, если это необходимо.
Чтобы удалить кнопку в java-коде :
Для прозрачной кнопки в java-коде :
Чтобы удалить кнопку в файле Xml :
К прозрачной кнопке в файле Xml :
Это представление невидимо, и оно не требует места для компоновки.
Но если вы просто хотите сделать его невидимым:
Использовать setVisibility в кнопке или изображенииViwe или …..
Чтобы удалить кнопку в java-коде:
К прозрачной кнопке в java-коде
Вы должны сделать вам xml-код кнопки, как показано ниже:
скрытых:
Видимость: нет
показать:
Видимость: невидимая
Видимость: видимая
Делает это видимым, если невидимым и невидимым, если видимо
Чтобы полностью удалить кнопку из родительского макета:
Элементы управления просмотром (TextView, EditText, Button, Image и т. Д.) Имеют свойство видимости. Это может быть установлено в одно из трех значений:
Видимый – отображается
Невидимый – скрытый, но зарезервированный
Gone – Скрыто полностью
Чтобы установить видимость в коде, используйте общедоступную константу, доступную в статическом классе View:
Источник
Android. Скрытая кнопка, пока поля не заполнены
Хотел бы узнать, как можно скрывать кнопку до тех пор, пока поля не заполнены. Например, у нас есть одна кнопка, и три EditText, кнопку будет не видно, пока все 3 EditText не заполнены.
3 ответа 3
Я сделал пример, который на мой взгляд будет проще поддерживать в проектах.
Здесь нет ограничения, в кол-ве EditText, хотя я для примера использовал три, как у вас в вопросе.
MultiEditText.class
Выглядит просто, и намного короче правда?) Теперь.
CustomTextWatcher.class
Я добавил разметку, чтоб вам не тратить время.
multi_edit_text.xml
Устанавливаете слушатель на свои textView, в какую то переменную записуете состояние(сколько textView щас заполнены) создаете условие и если оно выполняется — то показываете кнопку.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками android button hide или задайте свой вопрос.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.12.3.40888
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Источник