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

第49页

















另外,在程序中还需要启动另一个活动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