Header ads

Header ads
» » Inline anonymous listener

Xử lí sự kiện bằng lớp nặc danh (Inline anonymous listener)

Đây là một cách bắt sự kiện gọi là kinh điển của những người lập trình viên Android vì nó được sử dụng rất là nhiều do đơn giản và tiện dụng.Đây là cách bắt sự kiện dựa vào ID của view.

Tạo ra một bộ lắng nghe nạc danh

Định nghĩa và truyền phương thức setOnClickListener()

Ví dụ: Chúng ta có project tên là InlineListener trong có 2 button, chúng ta sẽ tạo sự kiện cho 2 button này, dưới đây là tập tin XML:

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:tools="http://schemas.android.com/tools"      android:layout_width="match_parent"      android:layout_height="match_parent"      android:paddingBottom="@dimen/activity_vertical_margin"      android:paddingLeft="@dimen/activity_horizontal_margin"      android:paddingRight="@dimen/activity_horizontal_margin"      android:paddingTop="@dimen/activity_vertical_margin"      tools:context="hiepsiit.com.MainActivity" >           <Button          android:id="@+id/btnLogin"          android:layout_width="wrap_content"          android:layout_height="wrap_content"                  android:layout_marginLeft="14dp"          android:layout_marginTop="57dp"          android:text="Login" />        <Button          android:id="@+id/btnLogout"          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:layout_alignBaseline="@+id/btnLogin"          android:layout_alignBottom="@+id/btnLogin"          android:layout_marginLeft="33dp"          android:layout_toRightOf="@+id/btnLogin"          android:text="Logout" />    </RelativeLayout>

Và đây là cách bắt sự kiện trong MainAcitivty: Trong code Java chúng ta cần khai báo 2 button, và set sự kiện cho 2 button thông qua phương thức setOnClickListener()

  package hiepsiit.com;    import android.app.Activity;  import android.os.Bundle;  import android.view.Menu;  import android.view.MenuItem;  import android.view.View;  import android.view.View.OnClickListener;  import android.widget.Button;  import android.widget.Toast;    public class MainActivity extends Activity {  	//Cần khai báo 2 nút Button  	Button btnLogin, btnLogout;    	@Override  	protected void onCreate(Bundle savedInstanceState) {  		super.onCreate(savedInstanceState);  		setContentView(R.layout.activity_main);  		// lấy 2 button từ file xml  		btnLogin	=	(Button)findViewById(R.id.btnLogin);  		btnLogout	=	(Button)findViewById(R.id.btnLogout);  		// Đặt sự kiện cho từng button  		btnLogin.setOnClickListener(new OnClickListener() {  			  			@Override  			public void onClick(View v) {  				// TODO Auto-generated method stub  				Toast.makeText(getApplication(), "Hiệp Sĩ IT: Bạn đang Click vào Button Login", Toast.LENGTH_LONG).show();  				  			}  		});  		btnLogout.setOnClickListener(new OnClickListener() {  			  			@Override  			public void onClick(View v) {  				// TODO Auto-generated method stub  				Toast.makeText(getApplication(), "Hiệp Sĩ IT: Bạn đang Click vào Button Logout", Toast.LENGTH_LONG).show();  			}  		});  	}    	  }  

Chú ý: Trong quá trình thêm các phương thức nó sẽ báo lỗi thiếu thự viện, sửa lỗi bằng cách rê chuột vào sẽ hiện thị ra màn hình:

Sau đó click vào import để thêm thư viện

Với kiểu xử lý sự kiện này thì bạn sẽ thấy thông qua id của view đúng không nào?Sau khi khởi tạo xong Button thì bạn gọi phương thức setOnClickListener và truyền vào param là Inner Anonymous (lớp nặc danh), lớp này có công dụng bắt sự kiện cho view gọi nó.


Download ví dụ

Ứng dụng này được phát triển bởi adt bundleandroid 4.2 sử dụng minimum sdk 8 and target sdk 21.


Kết quả click vào nút Login:

Kết quả click vào nút Logout:



Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCOxeYcvZPGf-mGLYSl_1LuA/videos
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
- Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn