另外,在程序中还需要启动另一个活动ContentActivity。因此,也需要在AndroidManifest.xml文件中声明该Activity,具体代码如下:
android:label="详细内容"
android:theme="@android:style/Theme.Dialog"/>
(4)获取“删除通知”按钮,并为其添加单击事件监听器,在重写的onClick()方法中,删除全部通知,具体代码如下:
Button button2 = (Button) findViewById(R.id.button2); //获取“删除通知”按钮
//为“删除通知”按钮添加单击事件监听器
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
notificationManager.cancel(NOTIFYID_1); //清除ID号为常量NOTIFYID_1的通知
notificationManager.cancelAll(); //清除全部通知
}
});
(5)由于在为第二个通知指定事件信息时,为其关联了一个Activity,因此,还需要创建该Activity,由于在该Activity中,只需要通过一个TextView组件显示一行具体的通知信息,所以实现起来比较容易,这里不再赘述,详细代码请参见光盘。
运行本实例,单击“显示通知”按钮,在屏幕的右下角将显示第一个通知,如图4.16所示,过一段时间后,该通知消失,并显示第二个通知,再过一段时间后,第二个通知也消失,这时在状态栏上将显示这两个通知的图标,如图4.17所示,单击通知图标,将显示如图4.18所示的通知列表,单击第一个列表项,可以查看通知的详细内容,如图4.19所示,查看后,该通知的图标将不在状态栏中显示。单击“删除通知”按钮,可以删除全部通知。
图4.16 单击“显示通知”按钮后显示的通知 图4.17 在状态栏上显示通知图标
图4.18 单击状态栏上的通知图标显示通知列表 图4.19 第二个通知的详细内容
4.2.3 使用AlertDialog创建对话框
AlertDialog类的功能非常强大,它不仅可以生成带按钮的提示对话框,还可以生成带列表的列表对话框,概括起来有以下4种:
[√]带确定、中立和取消等N个按钮的提示对话框,其中的按钮个数不是固定的,可以根据需要添加。例如,不需要中立按钮,则可以生成只带有确定和取消按钮的对话框,也可以是只带有一个按钮的对话框。
[√]带列表的列表对话框。
[√]带多个单选列表项和N个按钮的列表对话框。
[√]带多个多选列表项和N个按钮的列表对话框。
在使用AlertDialog类生成对话框时,常用的方法如表4.8所示。
表4.8 AlertDialog类的常用方法
方 法 描 述
setTitle(CharSequence title) 用于为对话框设置标题
setIcon(Drawable icon) 用于通过Drawable资源对象为对话框设置图标
setIcon(int resId) 用于通过资源ID为对话框设置图标
setMessage(CharSequence message) 用于为提示对话框设置要显示的内容
setButton() 用于为提示对话框添加按钮,可以是取消按钮、中立按钮和确定按钮。需要通过为其指定int类型的whichButton参数实现,其参数值可以是DialogInterface. BUTTON_POSITIVE(确定按钮)、BUTTON_NEGATIVE(取消按钮)或者BUTTON_NEUTRAL(中立按钮)
通常情况下,使用AlertDialog类只能生成带N个按钮的提示对话框,要生成另外3种列表对话框,需要使用AlertDialog.Builder类,AlertDialog.Builder类提供的常用方法如表4.9所示。
表4.9 AlertDialog.Builder类的常用方法
方 法 描 述
setTitle(CharSequence title) 用于为对话框设置标题
setIcon(Drawable icon) 用于通过Drawable资源对象为对话框设置图标
setIcon(int resId) 用于通过资源ID为对话框设置图标
setMessage(CharSequence message) 用于为提示对话框设置要显示的内容
setNegativeButton() 用于为对话框添加取消按钮
setPositiveButton() 用于为对话框添加确定按钮
setNeutralButton() 用于为对话框添加中立按钮
setItems() 用于为对话框添加列表项
setSingleChoiceItems() 用于为对话框添加单选列表项
setMultiChoiceItems() 用于为对话框添加多选列表项
下面通过一个具体的实例说明如何应用AlertDialog类生成提示对话框和各种列表对话框。
例4.13 在Eclipse中创建Android项目,名称为4.13,应用AlertDialog类实现带取消、中立和确定按钮的提示对话框,以及带列表、带多个单选列表项和带多个多选列表项的列表对话框。(实例位置:光盘\TM\sl\4\4.13)
(1)修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的TextView组件删除,然后添加4个用于控制各种对话框显示的按钮。由于此处的布局代码比较简单,这里就不再给出。
(2)在主活动MainActivity.java的onCreate()方法中,获取布局文件中添加的第1个按钮,也就是“显示带取消、中立和确定按钮的对话框”按钮,并为其添加单击事件监听器,在重写的onClick()方法中,应用AlertDialog类创建一个带取消、中立和确定按钮的提示对话框,具体代码如下:
Button button1 = (Button) findViewById(R.id.button1); //获取“显示带取消、中立和确定按钮的对话框”按钮
//为“显示带取消、中立和确定按钮的对话框”按钮添加单击事件监听器
button1.setOnClickListener(new View.OnClickListener() {
@Override