Lập trình Android - Interface OnClickListener

Kế thừa Interface OnClickListener 

Ở đây thì Activity sẽ kế thừa interface OnClickListener, interface này phương thức onClick sẽ có nhiệm vụ là lắng nghe các sự kiện click vào View, nếu có phương thức này sẽ được gọi đến.

Định nghĩa nút Button ở xml như sau:

<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>

Sau đó ở MainActivity bạn sẽ implement interface OnClickListener và override lại phương thức onClick của interface này:

public class MainActivity extends Activity implements OnClickListener

Thêm phương thức onClick bạn rê chuột vào MainActivity sau đó add unimlemented methods:

Phương thức onClick :

@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		// Lấy id từng button
		switch(v.getId()){
		case R.id.btnLogin:
			// Hiện thị thông báo trong vòng vài giây
			Toast.makeText(getApplication(), "Hiệp Sĩ IT: Bạn đang Click vào Button Login", Toast.LENGTH_LONG).show();
			break;
		case R.id.btnLogout:
			Toast.makeText(getApplication(), "Hiệp Sĩ IT: Bạn đang Click vào Button Logout", Toast.LENGTH_LONG).show();
			break;
		}
		
	}

Xử lý sự kiện cho 2 Button trong phương thức onCreate:

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		btnLogin	= (Button)findViewById(R.id.btnLogin);
		btnLogout	= (Button)findViewById(R.id.btnLogout);
		//Xử lý sự kiện cho 2 button
		btnLogin.setOnClickListener(this);
		btnLogout.setOnClickListener(this);
	}

Toàn bộ code trong MainActivity.java:

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 implements OnClickListener {
	Button btnLogin, btnLogout;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		btnLogin	= (Button)findViewById(R.id.btnLogin);
		btnLogout	= (Button)findViewById(R.id.btnLogout);
		//Xử lý sự kiện cho 2 button
		btnLogin.setOnClickListener(this);
		btnLogout.setOnClickListener(this);
	}
	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		// Lấy id từng button
		switch(v.getId()){
		case R.id.btnLogin:
			// Hiện thị thông báo trong vòng vài giây
			Toast.makeText(getApplication(), "Hiệp Sĩ IT: Bạn đang Click vào Button Login", Toast.LENGTH_LONG).show();
			break;
		case R.id.btnLogout:
			Toast.makeText(getApplication(), "Hiệp Sĩ IT: Bạn đang Click vào Button Logout", Toast.LENGTH_LONG).show();
			break;
		}
		
	}
	
}

Download ví dụ

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


Kết quả khi click vào button Login:

Kết quả khi click vào button Logout: