Android 之对话框 2

本文详细介绍了Android中的进度对话框和自定义对话框的使用方法,包括设置水平进度条、实现动态更新进度、自定义对话框组件及布局,以及Activity托管对话框的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于进度对话框

进度对话框与普通对话框一样,最多可以添加3个按钮;进度条的默认风格是圆形的,圆形进度对话框中的进度圆圈只是一个动画图像,并没有任何表示进度的功能,这种对话框一般在很难估计准确时间和进度时使用.

看如下示意图

 

可以使用如下代码将进度条设置为水平进度条风格:

ProgressDialog  pd = new ProgressDialog(this);

pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);

要实现进度随着时间的变化而不断递增,需要使用多线程及定时器来完成这个工作,实现的方法是编写一个Handler类的子类,并覆盖Handler类的handleMessage方法,在该方法中设置新的进度和系统下一次调用handleMessage方法的时间间隔(单位ms)

注意: 使用sendEmptyMessage方法中能使用handleMessage 方法执行一次,要想实现以一定时间间隔循环执行handleMessage方法,需要在handleMessage方法中调用sendEmptyMessageDelayed方法设置handleMessage方法下一次被告调用时等待的时间,这样就形成一个循环调用的效果.

关键代码:

progress++;

progressDialog.incrementProgressBy(10);                    //将进度递增 10

//随机设置下一次递增进度(调用handleMessage())的时间间隔, 第1个参数表示消息代码,第2个参数表示下一次调用handleMessage要等待的毫秒数

progressHandler.sendEmptyMessageDelayed(10, 50 + new Random().nextInt(500));  

具体代码请参见 ch04_progressdialog工程

------------------------------------------------------------------------------------

关于自定义对话框,特别注意:这里说的自定义是里面的组件元素类型、个数,显示风格是Android系统风格,与那种完全由开发人员编写的图片,标题所产生的全新风格又是另一回事.  全新风格的对话框示意图如下

  

代码请参见 CustomDialog工程

AlertDialog.Builder 类的setView方法可以将视图对象添加到当前的对话框中。可以使用下面的形式将一个视图对象添加到对话框中:

new  AlertDialog.Builder(this).setIcon(R.drawable.alert_dialog_icon).setTitle("自定义对话框")

.setView(...)                        ————————— 将视图添加到对话框

.show();

示意图

具体用法 请参见 ch04_logindialog工程

---------------------------------------------------------------------------------

关于 Activity 托管对话框

定义: Activity托管对话框是指通过Activity 的onCreateDialog方法 创建Dialog,但是onCreateDialog并不直接被调用,

Activity类首先调用showDialog方法,然后由showDialog方法调用onCreateDialog方法

示意图参见

具体代码请参见 ch04_activitydialog工程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值