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;
}
}
}
Ứng dụng này được phát triển bởi adt bundle, android 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: