Android事件处理之监听事件
16lz
2021-01-23
监听事件是一种委托式的事件处理。
监听事件处理模型示意图:
三大对象:
1). 事件源(Event Resource):就是Android常用的View组件如:Button、TextView、ListView等
2). 事件(Event):就是Android中封装的Event的对象。
3). 事件监听器(Event Listener):就是Android中常用的OnclickListener、OnItemClickListener、OnTounchListener等
事件监听器的实现方式:
1.外部类
package com.example.demo;import android.view.View;import android.view.View.OnClickListener;public class MyListener implements OnClickListener{ @Override public void onClick(View v) { //事件处理并响应 }}
2.内部类
package com.example.demo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity { private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new MyListener ()); } public class MyListener implements OnClickListener{ @Override public void onClick(View v) { //事件处理并响应 } } }
3.Activity自身作为监听器
package com.example.demo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener{ private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub }}
4.匿名内部类
package com.example.demo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity{ private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } }); }}
事件监听器的注册:
事件源.事件监听器(事件监听器事的实现)如:btn.setOnClickListener(new MyListener ());
更多相关文章
- android一些不常用的事件
- android添加触摸事件
- android应用程序键盘事件机制
- Java事件模型与Android事件模型的比较
- Android菜鸟的成长笔记(11)——Android中的事件处理
- Android事件处理
- Android之各种事件触发方案
- 内部类的使用
- 「Android 进阶」Android 事件分发机制