万书网 > 文学作品 > Android从入门到精通 > 第77页

第77页





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()方法来拦截用户单击后退按钮事件,代码如下: