Android应用软件开发

194课时
694学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
5分钟

2.3 案例分析

案例分析

布局文件比较简单,这里不做过多分析。

MainActivity.java清单分析

行34-39:为btn1对象设置一个单击事件监听器,当发生单击时,立即回调onClick()方法,即执行showNormalDialog方法。需要注意的是这里的参数是View.OnClickListener接口。

实际上new View.OnClickListener()就是创建了一个匿名的接口实现类的实例。其中onClick方法是OnClickListener中定义的抽象方法。onClick的参数v,表示触发了该事件的对象,这里就是btn1。

行43-74:同上。

行76-106:创建一个普通对话框。AlertDialog不能直接new,而是通过AlertDialog.Bulider创建。setIcon设置图标,setTitle设置标题,setMessage设置对话框消息内容。

AlertDialog对话框可以设置1-3个按钮,分别通过setPositiveButton、setNegativeButton和setNeutralButton设定。对于更复杂的对话框,可以使用自定义视图来实现。

行105:show方法用于显示对话框。

行107-120:创建一个列表对话框。Items数组用于列表项中的内容;setItems方法为对话框设置列表项。

行114:onClick(DialogInterface dialog, int which) 其中which参数表示列表项目的位置(从0开始计算)。

行122-148:创建单选对话框。行129中setSingleChoiceItems (CharSequence[] items, int checkedItem, DialogInterface.OnClickListener listener)中第2个参数表示默认选择的项目位置,如果都不选择,则设置为-1。

行150-187:创建一个多选对话框。行159中setMultiChoiceItems (CharSequence[] items, boolean[] checkedItems, DialogInterface.OnMultiChoiceClickListener listener)中第2个参数checkedItems表示是否默认选择某些项目,如果默认选择,则该数组长度必须和第一个参数items相同,如果不选择,可以设置为null。

行189-205:创建一个带有输入框的对话框。行192,定义一个EditText的实例editText,行195中setView(editText)表示将editText作为该对话框的视图。行201中editText.getText()获取用户在文本框中输入的内容。

行207-230:创建一个自定义对话框。所谓自定义就是对话框内容部分设置为自己定义的视图(上面一个输入框对话框就是如此,但复杂的视图编程过于麻烦,最好通过布局文件来实现),行213-214将布局文件custom_dialog.xml转换为一个视图变量dialogView。行216中的setView方法将dialogView设置为对话框视图。行222-223获取custom_dialog.xml中的EditText。