内部类形式
外部类形式
Activity本身作为监听器类
匿名内部类形式
绑定标签实现监听
第一种: 内部类形式
1 public class FiveClickListenerActivity extends AppCompatActivity {
2 class MyButtonListener implements View.OnClickListener{
3 @Override
4 public void onClick(View v){
5 // 相关的事件处理
6 Toast.makeText(FiveClickListenerActivity.this,"内部类形式实现事件监听功能",Toast.LENGTH_SHORT).show();
7 }
8 }
9
10 @Override
11 protected void onCreate(Bundle savedInstanceState) {
12 super.onCreate(savedInstanceState);
13 setContentView(R.layout.activity_five_click_listener);
14 Button button =(Button) findViewById(R.id.btn_1);
15 MyButtonListener listener = new MyButtonListener();
16 button.setOnClickListener(listener);
17 }
18 }
第二种: 内部类形式
1 public class FiveClickListenerActivity extends AppCompatActivity {
2 @Override
3 protected void onCreate(Bundle savedInstanceState) {
4 super.onCreate(savedInstanceState);
5 setContentView(R.layout.activity_five_click_listener);
6 Button button = (Button) findViewById(R.id.btn_1);
7 MyButtonListener listener = new MyButtonListener();
8 button.setOnClickListener(listener);
9 }
10 }
新建一个外部类MyButtonListener:
1 public class MyButtonListener implements View.OnClickListener {
2 public void onClick(View v){
3 //相关事件处理
4 }
5 }
第三种: 匿名内部类
1 public class FiveClickListenerActivity extends AppCompatActivity {
2 @Override
3 protected void onCreate(Bundle savedInstanceState) {
4 super.onCreate(savedInstanceState);
5 setContentView(R.layout.activity_five_click_listener);
6 Button button = (Button) findViewById(R.id.btn_1);
7 button.setOnClickListener(new View.OnClickListener() {
8 @Override
9 public void onClick(View v) {
10 Toast.makeText(FiveClickListenerActivity.this,"匿名内部类实现事件监听功能",Toast.LENGTH_SHORT).show();
11 }
12 });
13 }
14 }
第四种: Activity本身作为事件监听器类
// Activity本身作为事件监听器类
/* 1. 将当前Activity实现OnClicklistener监听接口 重写Onclick方法
2. 通过Acvitity 创建一个监听对象,this就是这个对象
3. 将监听器注册到按钮上
*/
public class FiveClickListenerActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_five_click_listener);
Button button = (Button) findViewById(R.id.btn_1);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(this,"Activity本身作为事件监听器类实现事件监听功能",Toast.LENGTH_SHORT).show();
}
}
第五种: 通过绑定标签完成监听
在布局文件(XML)中添加onClick属性,属性值作为方法名进行重写完成监听
xml文件:
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent">
package com.example.ui_moudle;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class HXJZG_Onclick_Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hxjzg__onclick_);
}
public void btn_btnClick(View v){
Toast.makeText(HXJZG_Onclick_Activity.this,"绑定标签完成监听",Toast.LENGTH_SHORT).show();
}
}