事件处理机制
- 基于监听事件
注:教材上的都太官方和书面了,为了理解写一篇通俗易懂的帮助大家理解。
第一个基于监听事件
此图来自菜鸟教程
看下面这一段代码结合我所说的话:
import...
public class MainActivity extends Activity {
private Button btnshow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//从下面的代码开始看,将按钮变成一个对象然后就可以绑定点击的事件监听器。
btnshow = (Button) findViewById(R.id.btnshow);
//直接new一个内部类对象作为参数,绑定BtnClickListener类作为事件监听器,BtnClickListener类里面的方法来反映点击按钮后给出的反应。
btnshow.setOnClickListener(new BtnClickListener());
}
//定义一个内部类,实现View.OnClickListener接口,并重写onClick()方法
class BtnClickListener implements View.OnClickListener
{
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "按钮被点击了", Toast.LENGTH_SHORT).show();
}
}
}
需要理解的第一点:(1)BtnClickListener这个类继承单击事件接口View.OnClickListener,重写了onClick方法,这个方法就是事件处理器,这个BtnClickListener类就是事件监听器
第二点(2)setOnClickListener()就是用来绑定单击事件监听器的方法,相当于绳子。
第三点(3)产生的事件对象就是BtnClickListener类的对象,通过这个对象来调用方法。
描述过程:(通俗易通的话)
比如你有一个小孩子(事件源也就是这个Button(按钮))很调皮,去厨房冰箱里拿饮料喝,在卧室偷偷的喝(拿到饮料正在喝就是一个事件),看见这件事你不能不管吧,你老婆说了,孩子偷喝就告诉她,你呢身为孩子的爹(就是一个监听器你就是BtnClickListener类),你告诉你老婆了,你老婆就来教育他(你老婆就是重写的onClick(View v)要来做出反应。 )