14. android dialog——普通对话框原理

先看过效果图:

 

     

图1  输入框默认文字为"这是一个普通对话框。"                           图2     当点击"显示普通对话框"后,将弹出一个对话框

 


            

  图3 点击图2中的对话框的确定按钮, 输入框里输入自己的内容      图4  点击图3中的“显示普通对话框”后弹出对话框

 

第一步:建立res/values/string.xml 

 

第二步:建立res/layout/common_dialog_layout.xml 用来创建输入框和“显示普通对话框”按钮

                   

 第三步: 分析:

关于src/com/mycommondialog/activity/CommonDialogActivity.java

1.首先对“显示普通对话框”按钮进行事件监听,即当点击这个按钮后显示对话框

这里showDialog(int)用来显示对话框的,是系统自带的方法,当点击button产生时间后,调用该方法,首先该方法会判断Activity是否保存了对话框对象

(1)如果未保存则调用onCreateDialog(int),然后再调用onPrepareDialog(int, Dialog)

(2)如果保存了对话框对象,则直接调用onPrepareDialog(int, Dialog),不会再去create,所以有时候当你再输入框里无论如何输入什么内容,对话框的内容都是第一次产生的。

2. Activity 未保存对话框对象,则会创建对话框,即调用onCreateDialog(int)

 

需要new AlertDialog.Builder(this)用来存放Dialog的内容(如图标,标题和信息),this是针对此Activity的。

setPositiveButton表示中间的那个button按钮(一般情况下button有三个按钮,此处只显示中间的那个按钮)

removeDialog(int)是用来清除Activity保存下来的Dialog对象,如果不加removeDialog将会导致无论在对话框里输入什么内容,

弹出来的对话框始终都是第一次保留下来的,这里所以要加上它

3. 关于onPrepareDialog(int, Dialog), 每次点击“显示普通对话框”按钮都会去调用此方法。

dialog.show()其实意义不大,加与不加系统都会调用show的,而且只显示一个对话框,dialog中isShowing()来判断是否该对话框正在显示了,为了验证可以将onPrepareDialog(int, Dialog)改成下面情况(只针对下列改动)

 

或者

 

 

 结果dialog显示一个,而不会有多个对话框出现。

 

关于整个CommonDialogActivity代码如下(src/com/mycommondialog/activity/CommonDialogActivity.java)

 

 

 

最后贴出目录结构

 

 

 

源码下载地址:http://download.csdn.net/down/3217796/jamesliulyc

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值