android:background="@drawable/background"
android:orientation="vertical" >
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/open"
android:textColor="@android:color/black"
android:textSize="25px" />
(2)编写WebActivity,它通过为按钮增加单击事件监听器来完成打开网页功能,其代码如下:
public class WebActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); //设置页面布局
Button button = (Button) findViewById(R.id.button); //通过id值获得按钮对象
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(); /创建Intent对象
intent.setAction(Intent.ACTION_VIEW); //为Intent设置动作
intent.setData(Uri.parse("http://google.hk")); //为Intent设置数据
startActivity(intent); //将Intent传递给Activity
}
});
}
}
(3)修改AndroidManifest.xml文件,增加要启动的Activity。
(4)启动应用,其运行效果如图6.10所示。单击“打开网页”按钮,显示如图6.11所示的谷歌主页。
图6.10 打开网页界面 图6.11 谷歌主页
6.4 小 结
本章介绍的是Intent对象在Android中的作用。Intent对象用于实现不同组件之间的连接。一个Intent对象包含组件名称、动作、数据、种类、额外和标记等内容。Android系统可以根据开发人员在Intent中设置的内容选择合适的组件进行处理。在日常开发中,应该注意显式Intent和隐式Intent的应用场合。
6.5 实践与练习
1. 编写Android程序,实现使用Intent播放视频(假设在SD卡中包含Test.m4v文件)的功能。(答案位置:光盘\TM\sl\6\6.7)
2. 编写Android程序,实现使用Intent编辑通讯录信息(假设在通讯录中至少保存了一条记录)的功能。(答案位置:光盘\TM\sl\6\6.8)
第7章 Android事件处理
( 教学录像:37分钟)
用户在使用手机、平板电脑时,总是通过各种操作来与软件进行交互,较常见的方式包括键盘操作、触摸操作和手势等。在Android中,这些操作都将转换为对应的事件进行处理,本章就对Android中事件处理进行介绍。
通过阅读本章,您可以:
★ 了解事件处理的机制
★ 掌握键盘事件处理
★ 掌握触摸事件处理
★ 掌握手势的创建与识别
7.1 事件处理概述
教学录像:光盘\TM\lx\7\ 事件处理概述.exe
在前面的章节中,简单地介绍了Android中各种常用的控件,它们组成了应用程序界面。此外,还应当学习如何处理用户对这些控件的操作,如单击按钮等,这就是本章的核心内容。
现在的图形界面应用程序,都是通过事件来实现人机交互的。事件就是用户对图形界面的操作。在Android手机和平板电脑上,主要包括键盘事件和触摸事件两大类。键盘事件包括按下、弹起等,触摸事件包括按下、弹起、滑动、双击等。
在Android控件中,提供了事件处理的相关方法。例如在View类中,提供了onTouchEvent()方法来处理触摸事件。但是,仅有重写这个方法才能完成事件处理显然并不实用。这种方式主要适用于重写控件的场景。除了onTouchEvent()方法,还可以使用setOnTouchListener()方法为控件设置监听器来处理触摸事件,这在日常开发中更加常用。
7.2 处理键盘事件
教学录像:光盘\TM\lx\7\ 处理键盘事件.exe
7.2.1 物理按键简介
对于一个标准的Android设备,包含了多个能够触发事件的物理按键,如图7.1所示。
图7.1 带有物理键盘的Android模拟器
说明: 模拟器Skin使用内置的HVGA。
各个可用的物理按键能够触发的事件及其说明如表7.1所示。
表7.1 Android设备可用物理按键及其触发事件
物理按键 KeyEvent 说 明
电源键 KEYCODE_POWER 启动或唤醒设备,将界面切换到锁定的屏幕
后退键 KEYCODE_BACK 返回到前一个界面
菜单键 KEYCODE_MENU 显示当前应用的可用菜单
Home键 KEYCODE_HOME 返回到Home界面
查找键 KEYCODE_SEARCH 在当前应用中启动搜索
相机键 KEYCODE_CAMERA 启动相机
音量键 KEYCODE_VOLUME_UP
KEYCODE_VOLUME_DOWN 控制当前上下文音量,如音乐播放器、手机铃声、通话音量等
方向键 KEYCODE_DPAD_CENTER
KEYCODE_DPAD_UP
KEYCODE_DPAD_DOWN
KEYCODE_DPAD_LEFT
KEYCODE_DPAD_RIGHT 某些设备中包含方向键,用于移动光标等
键盘键 KEYCODE_0, ...,
KEYCODE_9, KEYCODE_A,
..., KEYCODE_Z 数字0~9、字母A~Z等按键
Android中控件在处理物理按键事件时,提供的回调方法有onKeyUp()、onKeyDown()和onKeyLongPress()。
7.2.2 范例1:屏蔽后退键
例7.1 在Eclipse中创建Android项目,名称为7.1,屏蔽物理键盘中的后退键。(实例位置:光盘\TM\sl\7\7.1)
编写ForbiddenBackActivity,重写onCreate()方法来加载布局文件,重写onKeyDown()方法来拦截用户单击后退按钮事件,代码如下: