- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android应用程序中事件处理
2012.8.26
一、事件相关概述
在图形界面(UI)的开发中,有两个非常重要的内容:一个是控件的布局,另一个就是控件的事件处理,其中,控件的布局已经在 /u/2726952293中“Android UI基础知识”部分已经说明,本部分主要对事件的处理进行分析。Android应用程序中事件的处理秉承了JavaSE图形用户界面的处理方式和风格。
Android在事件处理过程中主要涉及到3个概念:
1)事件:表示用户在图形界面的操作的描述,通常是封装成各种类,比如:键盘事件操作相关的类为KeyEvent、触摸屏相关的移动事件类为MotionEvent等,在后面我们将专门列出相关的事件。
2)事件源:事件源是指事件发生的场所,通常是指各个控件,例如:Button、EditText等控件。
3)事件处理者:事件处理者是指接收事件对象并对其进行处理的对象,事件处理一般是一个实现某些特定接口类创建的对象。
二、事件处理模型
事件处理模型通常有三种方式:接口实现事件处理模型、内部类事件处理模型和匿名内部类事件处理模型三种。下面以响应Button事件源,单击事件以及弹出响应结果为例说明以上三种事件处理模型。
1、接口实现事件处理模型
以下Button按钮响应机制为:单击Button的时候,屏幕上的TextView中输出“你好!”。
通过DroidDraw设计的带Button按钮的布局,如图1所示:
图1 布局文件的设计
其中,布局代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/userlayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
xmlns:android="/apk/res/android">
<TextView
android:id="@+id/mytext"
android:layout_width="165dp"
android:layout_height="38dp"
android:text="TextView" />
<Button
android:id="@+id/mybutton"
android:layout_width="172dp"
android:layout_height="52dp"
android:text="Button" />
</LinearLayout>
以下代码为在Activity中实现接口,并且绑定在Button按钮上:
package com.wjy.usersrc;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class TestActivity extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* 以下是定义Button按钮 */
Button mybutton = (Button) findViewById(R.id.mybutton);
/* 绑定接口 */
mybutton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.mybutton:
TextView mytext = (TextView) findViewById(R.id.mytext);
mytext.setText("你好!");
}
}
}
配置文件AndroidManifest.xml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="/apk/res/
文档评论(0)