Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Первый способ - атрибут onClick




Относительно новый способ, специально разработанный для Android - использовать атрибут onClick (на панели свойств отображается как On Click):

android:onClick="onMyButtonClick"

Имя для события можно выбрать произвольное, но лучше не выпендриваться. Далее нужно прописать в классе активности придуманное вами имя метода, который будет обрабатывать нажатие. Метод должен быть открытым (public) и с одним параметром, использующим объект View. Вам нужно выучить пять слов для создания метода, а сам метод поместить в класс (если вы ещё путаетесь в структуре Java-кода, то вставьте метод перед последней фигурной скобкой):

public void onMyButtonClick(View view) { // выводим сообщение Toast.makeText(this, "Зачем вы нажали?", Toast.LENGTH_SHORT).show(); }

Когда пользователь нажимает на кнопку, то вызывается метод onMyButtonClick(), который в свою очередь генерирует всплывающее сообщение.

Обратите внимание, что при подобном подходе вам не придётся даже объявлять кнопку через конструкцию (Button)findViewById(R.id.button1), так как Android сама поймёт, что к чему. Данный способ применим не только к кнопке, но и к другим элементам и позволяет сократить количество строк кода.

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

Второй способ - метод setOnClickListener()

Более традиционный способ в Java - через метод setOnClickListener(), который прослушивает нажатия на кнопку. Так как для начинающего программиста код может показаться сложным, то рекомендуется использовать подсказки Eclipse. Вот как это будет выглядеть. Предположим, у вас на экране уже есть кнопка button1. В коде вы объявляете её обычным способом:

Button button1 = (Button) findViewById(R.id.button1);

Следующий шаг - написание метода для нажатия. Напечатайте имя элемента и поставьте точку button1. - среда разработки покажет вам список доступных выражений для продолжения кода. Вы можете вручную просмотреть и выбрать нужный вариант, а можно продолжать набирать символы, чтобы ускорить процесс. Так как с нажатиями кнопок вам часто придётся работать, то запомните название его метода (хотя бы первые несколько символов) - набрав шесть символов (setonc), вы увидите один оставшийся вариант, дальше можно сразу нажать клавишу Enter, не набирая оставшиеся символы. У вас появится строка такого вида:

button1.setOnClickListener(l)

Символ l будет выделен, а также будет видна подсказка OnClickListener l. Пока символ выделен, начинайте набирать new OnClickListener. Здесь также не обязательно набирать имя полностью. Наберите слово oncl и нажмите комбинацию клавиш Ctrl+Space для вывода вариантов продолжения. Eclipse предложит вам единственный вариант, поэтому сразу нажимайте Enter и вы получите готовую заготовку для обработки нажатия кнопки:

button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub }})

Вас могут испугать три красные метки об ошибках. Не пугайтесь, поставьте в самом конце заготовки символ точки с запятой; после последней круглой скобки, и первая ошибка исчезнет. Далее подведите курсор мыши к слову OnClickListener, которая подчёркнута волнистой красной чертой. Появятся несколько вариантов для исправления ошибки. Выберите вариант Import 'OnClickListener' (android.view.View) и исчезнут оставшиеся две метки. Теперь у вас есть рабочая заготовка и сразу после строки с комментарием TODO Auto-generated method stub вы можете писать свой код. Рекомендую потренироваться и набить руку в создании заготовки. Это не так сложно и с практикой навык закрепится автоматически.

Как вариант, можно вынести код для OnClickListener в отдельное место, это удобно, когда кнопок на экране несколько и такой подход позволит упорядочить код. Удалите предыдущий пример и начните писать код заново. Принцип такой же, немного меняется порядок. В предыдущем примере мы сразу прописали в методе setOnClickListener слушателя new OnClickListener... с методом onClick(). Можно сначала отдельно объявить отдельную переменную myButtonClickListener:

OnClickListener myButtonClickListener = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub }};

Во время набора активно используйте подсказки через Ctrl+Space. Набрали несколько символов у первого слова и нажимайте эту комбинацию, набрали после слова new несколько символов и снова нажимайте указанную комбинацию - заготовка будет создана за несколько секунд, а вы избежите возможных опечаток.

У нас есть готовая переменная, и теперь, когда вы будете набирать код button1.setOnClickListener, то опять появится выделенный символ l, но уже с подсказкой, что можно выбрать готовую переменную - выделите её и нажмите Enter или вручную пишите самостоятельно.

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





Поделиться с друзьями:


Дата добавления: 2016-11-24; Мы поможем в написании ваших работ!; просмотров: 458 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Стремитесь не к успеху, а к ценностям, которые он дает © Альберт Эйнштейн
==> читать все изречения...

4320 - | 4207 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.