事件监听的一些基本概念 要涉及到点击事件三个基本概念
事件
事件源:指用户发生的某个事件
事件监听器 :监听事件(组件)发生的某个事件,并作出相应的反应
1.
内部类方法 设置事件监听机制
public class Test extends Activity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
MyButtonlistener listener = new MyButtonlistener();
button.setOnClickListener(listener);
}
class MyButtonlistener implements View.OnClickListener{
@Override
public void onClick(View v) {
//相关事件处理
}
}
}
上述代码就是利用内部类方法设置事件监听器,需要自己写一个监听类,继承view.onclicklistener
**2.**外部类 不太常用
重新建一个clicklistener 继承view.onclicklistener
因为不太常用就不举例了
**3.**匿名内部类
最为常用的方法,最多人使用
public class Test extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//事件处理
}
});
}
}
**4.**activity实现onclicklistener 接口
public class Test extends Activity implements View.OnClickListener{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.about);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
//事件处理
}
}
5. .xml实现事件监听(只有button这种方法有效)
一定要在代码中定义一个方法 并且要传入一个参数View