Event to Android Developer

6
SỰ KIỆN TRONG LẬP TRÌNH ANDROID 1. Một vài cách viết sự kiện Onclick in XML Inline anonymous listener Activity is listener Listener in variable Explicit listener class 2. Cách viết của từng loại sự kiện 2.1. Onclick in XML Với cách viết này, tên sự kiện sẽ được khai báo trong file XML của activity, cách viết như sau: <Button android:id="@+id/btnXML" android:layout_width="145dp" android:layout_height="34dp" android:layout_marginRight="5dp" android:background="#CCFFFF" android:text="@string/lblTinh" android:onClick="ThucHienPhepTinh" /> Trong đoạn XML đã định nghĩa 1 sự kiện click (touch) vào Button đó là android:onClick="ThucHienPhepTinh”. Với ThucHienPhepTinh là một phương thức được định nghĩa trong java (được mô tả trong hình bên dưới). 2.2. Inline anonymous listener Với cách viết này, sự kiện được khai báo trực tiếp trong file Java.

description

Event to Android Developer

Transcript of Event to Android Developer

Page 1: Event to Android Developer

SỰ KIỆN TRONG LẬP TRÌNH ANDROID1. Một vài cách viết sự kiện

Onclick in XML Inline anonymous listener Activity is listener Listener in variable Explicit listener class

2. Cách viết của từng loại sự kiện2.1. Onclick in XMLVới cách viết này, tên sự kiện sẽ được khai báo trong file XML của activity, cách viết

như sau:<Button

android:id="@+id/btnXML"android:layout_width="145dp"android:layout_height="34dp"android:layout_marginRight="5dp"android:background="#CCFFFF"android:text="@string/lblTinh"android:onClick="ThucHienPhepTinh"

/>Trong đoạn XML đã định nghĩa 1 sự kiện click (touch) vào Button đó là

android:onClick="ThucHienPhepTinh”. Với ThucHienPhepTinh là một phương thức được định nghĩa trong java (được mô tả trong hình bên dưới).

2.2. Inline anonymous listenerVới cách viết này, sự kiện được khai báo trực tiếp trong file Java.

Page 2: Event to Android Developer

Đầu tiên là phải lấy đối tượng Button trong giao diện để thêm sự kiện cho Button đó,

và các lấy sự lấy đối tượng đc viết như sau:Button btnTinh = (Button) findViewById(R.id.btnTinhInline);findViewById(R.id.btnTinhInline) là 1 phương thức dùng để tìm 1 đối tượng trên

giao diện và trả về là 1 đối tượng có kiểu là View, vì vậy ta cần ép kiểu nó sang Button.R.id.btnTinhInline được đinh nghĩa trong file R.java, đó giá 1 giá trị kiểu int, như

hình bên dưới.

Sau khi lấy được đối tượng cần tạo sự kiện thì ta có thể Set cổng lắng nghe vào cho đối tượng đó. Khi Set mỗi cống lắng nghe cho các đối tượng thì cần phải khởi tạo 1 cổng lắng nghe mới sau đó mới Set vào cho đối tượng. Với cổng lắng nghe sự kiện thì ta định nghĩa 1 sự kiện bên trong cổng lắng nghe đó để thực hiện các tác vụ mà ta yêu cầu.

btnTinh.setOnClickListener(new View.OnClickListener() {

@Overridepublic void onClick(View v) {

// TODO Auto-generated method stubTinh();

}});

btnTinh đã set 1 cổng lắng nghe sự kiện onClick(View V). Với mỗi 1 đối tượng có rất nhiều sự kiện trên đối tượng đó, ví dụ như btnTinh, nó sẽ

có thêm những sự kiện khác ngoài OnClick(). các sự kiện đó có thể là onLongClick(View v) trong cổng lắng nghe OnLongClickListener(), sự kiện onTouch(View v, MotionEvent event) trong cổng lắng nghe OnTouchListener()….

Page 3: Event to Android Developer

2.3. Activity is listenerĐây là 1 cách viết sự kiện với implements của các Interface. Cách viết như sau:

public class MainActivity extends ActionBarActivity implements OnClickListener: đây là dòng khai báo MainActivity sử dụng interface OnClickListener, trong interface này ta cần định nghĩa lại phương thức onClick(View v).

Với cách viết này cũng giống với cách viết Inline anonymous listener, chỉ khác ở 1 điểm đó chỉnh là cổng lắng nghe cho đối này được Set lại là this.

Với cách này chúng ta vẫn có thể định nghĩa thêm các sự kiện khác nữa, và MainActivity phải implements thêm các interface khác ví dụ như là OnKeyListener, OnTouchListener…, và tương ứng với các interface đó ta sẽ định nghĩa lại các sự kiện tương ứng với mỗi interface.

2.4. Listener in variableĐây là ta sử dụng 1 biến để lưu trữ cổng lắng nghe sự kiện, biến này sẽ đc set cho các

đối tượng sử dụng sự kiện đó. Ví dụ như trong hình:

Biến myVarListener lưu trữ cổng lắng nghe sự kiện onClick(View v). Và biến này sẽ được set cổng lắng nghe vào cho đối tượng btnTinhV. Và chúng ta có thể tao nhiều biến cho nhiều cổng lắng nghe khác nhau và sau đó Set các cổng lắng nghe vào cho 1 đối tượng nào đó.

Page 4: Event to Android Developer

2.5. Explicit listener classVới cách này ta có thể tạo 1 class mới, class này được implements từ các interface

của các cổng lắng nghe sự kiện. Và bên trong mỗi lớp này ta phải định nghĩa lại các sự kiện của các interface đã được vào implements class. Ví vụ như trong hình sau:

Ta thấy việc khai báo khá là đơn giản, chỉ cần ta 1 lớp MyEventTinh implements OnClickListener, và định nghĩa lại sự kiện onClick(View v) của interface này là được.

Khi định nghĩa xong lớp này, thì ta chỉ việc set class MyEventTinh cho cổng lắng nghe dịch vụ của đối tượng btnTinhE.

Page 5: Event to Android Developer

TÀI LIỆU THAM KHẢO[1] http://developer.android.com/guide/topics/ui/ui-events.html [2] https://duythanhcse.wordpress.com/2013/04/02/bai-tap-8-cac-kieu-lap-trinh-

su-kien-trong-android/[3] Tutorialspoint.com, Android Tutorial[4] Mark L. Murphy, Android Programming Tutorials