В любой программе которую можно только найти то ли на Android, то ли на другую ОС, везде вы найдете кнопки или еще какие то элементы интерфейса при клике на который выполняется какое то действие, эти действия называются событиями. В этом не большом уроке я познакомлю вас с обработкой этих событий на примере Button кнопки.
Рассмотрим первый пример в который будет выглядеть так:
Кнопка:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Say hello!" android:id="@+id/button"/> </LinearLayout>
И теперь познакомимся с первым способом создания обработчика на кнопку.
Способ 1.
В main.xml в тег <Button> нужно добавить атрибут android:onClick="<обработчик>" ,
где <обработчик> это имя метода который и будет выполнять то действие, которое произойдет после нажатия на кнопку.
Пример использования:
public void btnHelloClick(View v){ Button button = (Button)findViewById(R.id.button); button.setText("Hello!"); }
Пример указанный выше демонстрирует событие нашей кнопки.
При использовании этого способа в обязательным условием является использование параметра в методе btnHelloClick(View v) только в этом случае метод будет выполнять действие которое должно повлиять на изменения на форме main.xml.
В данном примере я при нажатии на кнопку изменяю текст внутри кнопки с “Say hello!” на “Hello!”.
Способ 2.
На самом деле, способ обработки щелчка кнопки, который я вам показал, является относительно новым для разработчиков. Google рекомендует использовать данный способ как удобный, требующий меньше кода и понятный для чтения. Но тем не менее вам придется сталкиваться со старым способом, который берет свои корни от Java. Поэтому необходимо изучить и второй способ, чтобы понимать другие примеры.
Добавим новую кнопку на форму и назовем её “Hello World!”, после чего xml вид нашей формы будет такой:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Say hello!" android:id="@+id/button"/> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Hello World!" android:id="@+id/button1" android:layout_gravity="right|center_vertical"/> </LinearLayout>
Теперь давайте повесим обработчик на только что созданную кнопку.
final Button buttonHello = (Button) findViewById(R.id.button1); buttonHello.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Button button = (Button)findViewById(R.id.button1); button.setText("Hi People!"); } });
этот код добавляем в onCreate().
После этого наша текст нашей кнопки с “Hello World!” будет меняться на “Hi People”.
ПОХОЖИЕ ПУБЛИКАЦИИ
- None Found
15 комментариев к статье "Android. Обработчики событий для Button"