Android3系列 -4.事件机制及处理方式(附工程文件下载) .
来源:互联网 发布:天融信应届生工资 知乎 编辑:程序博客网 时间:2024/05/17 21:06
Android的事件沿用了Java的事件机制,
设计者:控件类+事件接口
使用者:实现事件接口+注册事件
核心还是多态:下图简单演示java事件机制
在Android编程中事件处理方式可以使用以下几种方式:
1.使用Activity子类本身:
//实现android.view.View.OnClickListener接口public class AndroidEvent extends Activity implements OnClickListener { @Override public void onCreate(Bundle savedInstanceState) {//..... findViewById(R.id.main_btn1).setOnClickListener(this);//注册事件 }public void onClick(View v) {//事件处理程序}}
⑴.AndroidEvent Activity 实现单击事件接口
⑵ 在AndroidEvent内部编写OnClick事件处理程序
⑶获取控件注册事件
完整个示例:
//实现android.view.View.OnClickListener接口public class AndroidEvent extends Activity implements OnClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.main_btn1).setOnClickListener(this);//注册事件 findViewById(R.id.main_btn2).setOnClickListener(this); }public void onClick(View v) {//事件处理程序switch (v.getId()) {case R.id.main_btn1:btn1_click(v);break;case R.id.main_btn2:btn2_click(v);break;default:break;}}//按钮1事件private void btn1_click(View v) {//显示EventTest1Intent it=new Intent(this,EventTest1.class);startActivity(it);}//按钮2事件private void btn2_click(View v) {//显示EventTest2Intent it=new Intent(this,EventTest2.class);startActivity(it);}}
2.使用匿名对象来处理
//声明匿名事件处理对象private OnClickListener btnClickListener=new OnClickListener() {//事件处理程序public void onClick(View v) {}};//......findViewById(R.id.test1_btn1).setOnClickListener(btnClickListener);//注册事件
完整示例:
public class EventTest1 extends Activity {//声明匿名事件处理对象 private OnClickListener btnClickListener=new OnClickListener() { //事件处理程序public void onClick(View v) {switch (v.getId()) {case R.id.test1_btn1:btn1_click(v);break;case R.id.test1_btn2:btn2_click(v);break;default:break;}}};private TextView txt1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.eventtest1); findViewById(R.id.test1_btn1).setOnClickListener(btnClickListener);//注册事件 findViewById(R.id.test1_btn2).setOnClickListener(btnClickListener);//注册事件 txt1=(TextView) findViewById(R.id.test1_txt1); } //按钮1事件private void btn1_click(View v) {txt1.setText("这是点击Test1的事件.");}//按钮2事件private void btn2_click(View v) {txt1.setText("这是点击Test2的事件.");}}
3.直接使用匿名对象事处理(和2差不多,一般用于少量代码处理)
//注册事件findViewById(R.id.test2_btn1).setOnClickListener(new OnClickListener() {//事件处理public void onClick(View v) {}});
完整示例:
public class EventTest2 extends Activity {private TextView txt1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.eventtest2); txt1=(TextView) findViewById(R.id.test2_txt1); //注册事件 findViewById(R.id.test2_btn1).setOnClickListener(new OnClickListener() { //事件处理public void onClick(View v) {txt1.setText("这是点击Test1的事件.");}}); //注册事件 findViewById(R.id.test2_btn2).setOnClickListener(new OnClickListener() { //事件处理public void onClick(View v) {txt1.setText("这是点击Test2的事件.");}}); }}
工程已上传,下载路径:http://download.csdn.net/user/Lijun7788
- Android3系列 -4.事件机制及处理方式(附工程文件下载) .
- Android3系列 -3.数独游戏开发2(附工程文件下载)
- 委托方式事件处理机制
- Android事件处理机制系列-----------Touch事件处理机制
- java事件机制及自定义事件处理
- 事件处理方式 && 消息传递机制
- Android3系列 -1.环境搭建(傻瓜式集成环境下载)
- Nginx----事件处理机制及进程模型
- android事件分发机制及冲突处理
- Nginx----事件处理机制及进程模型
- C#委托及事件处理机制浅析
- Java事件处理机制-事件监听器的实现方式
- Java事件处理机制-事件监听器的实现方式
- Java事件处理机制-事件监听器的实现方式
- Android3.1和3.2及google_api下载使用说明
- Http多线程下载文件的处理机制
- Android的事件类型及事件处理机制
- Linux文件读写机制及优化方式
- 菜鸟之驱动开发1
- zju 2100 Seeding(dfs暴搜)
- 在主机和虚拟机下如何传递文件
- 龙卷风一样
- Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard)
- Android3系列 -4.事件机制及处理方式(附工程文件下载) .
- git使用补丁方式进行软件代码提交
- 推挽电路
- 事务处理
- HDU 1754 i hate it
- 对自己设备的控制IRP的处理
- 博弈论 + 按位异或
- 天津将推新型看病一卡通
- web.xml中配置Spring的OpenSessionInViewFilter的作用