Terry Zou
BlogJava
首页
新随笔
联系
聚合
管理
posts - 93, comments - 2, trackbacks - 0
showDialog()、onPrepareDialog()和onCreateDialog()的关系
showDialog()调用createDialog()和onPrepareDialog(),其中createDialog()调用onCreateDialog()。
例子如下所示
1
package
com.zhihe.xqsh.test;
2
3
import
android.app.Activity;
4
import
android.app.Dialog;
5
import
android.app.ProgressDialog;
6
import
android.os.Bundle;
7
import
android.os.Handler;
8
import
android.os.Message;
9
import
android.util.Log;
10
import
android.view.View;
11
import
android.view.View.OnClickListener;
12
import
android.widget.Button;
13
import
android.widget.TextView;
14
15
import
com.zhihe.xqsh.activity.R;
16
17
public
class
Sample2_19_Activity
extends
Activity
{
18
19
final
int
PROGRESS_DIALOG
=
0
;
20
final
int
INCREASE
=
0
;
21
final
int
MAX_COUNTER
=
100
;
22
ProgressDialog pd;
23
Handler hd;
24
private
TextView tv_network;
25
private
Button bt_dialog;
26
27
@Override
28
public
void
onCreate(Bundle savedInstanceState)
29
{
30
super
.onCreate(savedInstanceState);
31
setContentView(R.layout.network);
32
33
tv_network
=
(TextView)
this
.findViewById(R.id.tv_network);
34
bt_dialog
=
(Button)
this
.findViewById(R.id.bt_dialog);
35
bt_dialog.setOnClickListener(
36
new
OnClickListener()
{
37
@Override
38
public
void
onClick(View v)
{
39
showDialog(PROGRESS_DIALOG);
40
}
41
}
42
);
43
hd
=
new
Handler()
{
44
@Override
45
public
void
handleMessage(Message msg)
//
必须重写此方法,用于接收数据
46
{
47
super
.handleMessage(msg);
48
switch
(msg.what)
49
{
50
case
INCREASE:
51
pd.incrementProgressBy(
1
);
//
进度每次加1
52
if
(pd.getProgress()
>=
MAX_COUNTER)
{
53
pd.dismiss();
54
}
55
break
;
56
}
57
}
58
}
;
59
}
60
61
@Override
62
public
Dialog onCreateDialog(
int
id)
{
63
switch
(id)
{
64
case
PROGRESS_DIALOG:
65
pd
=
new
ProgressDialog(
this
);
66
pd.setMax(MAX_COUNTER);
//
设置最大值
67
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
68
pd.setTitle(
"
hello
"
);
//
设置标题
69
pd.setCancelable(
false
);
//
设置进度对话框不能用回退按钮关闭
70
Log.d(
"
kkk
"
,
"
kkk
"
);
71
break
;
72
}
73
return
pd;
74
}
75
76
//
每次弹出对话框时被回调以动态更新对话框内容的方法
77
@Override
78
public
void
onPrepareDialog(
int
id, Dialog dialog)
{
79
super
.onPrepareDialog(id, dialog);
80
switch
(id)
{
81
case
PROGRESS_DIALOG:
82
pd.incrementProgressBy(
-
pd.getProgress());
//
对话框进度清零
83
new
Thread()
{
84
public
void
run()
{
85
while
(
true
)
{
86
hd.sendEmptyMessage(INCREASE);
87
if
(pd.getProgress()
>=
MAX_COUNTER)
{
88
break
;
89
}
90
try
{
91
Thread.sleep(
40
);
92
}
catch
(Exception e)
{
93
e.printStackTrace();
94
}
95
}
96
}
97
}
.start();
98
break
;
99
}
100
}
101
}
102
posted on 2015-02-03 08:55
Terry Zou
阅读(295)
评论(0)
编辑
收藏
所属分类:
Android
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
服务器连接
abe
abd
abc
Android之Activity的四种启动模式
android中跨进程通讯的4种方式
Android 一个应用中只有一个进程么?还是可以有多个
Fragment的生命周期
android ANR产生原因和解决办法
Android自定义控件
<
2015年2月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔分类
Android(49)
Androidpn(2)
hibernate(1)
Https(1)
JavaCard(3)
jQuery(6)
netty
NFC(1)
react框架(1)
spring(2)
SpringBoot(1)
Tomcat+Eclipse(18)
WebService(2)
一些心得(1)
随笔档案
2020年4月 (4)
2015年7月 (5)
2015年6月 (6)
2015年5月 (4)
2015年4月 (3)
2015年3月 (1)
2015年2月 (1)
2015年1月 (4)
2014年12月 (1)
2014年11月 (2)
2014年10月 (2)
2014年9月 (2)
2014年5月 (5)
2014年3月 (3)
2014年2月 (2)
2014年1月 (8)
2013年12月 (2)
2013年7月 (2)
2013年6月 (4)
2013年5月 (16)
2012年7月 (1)
2012年3月 (2)
2011年7月 (6)
文章分类
struts2.1.6(3)
文章档案
2020年4月 (1)
2012年3月 (3)
相册
my angel
收藏夹
Java
Java
搜索
最新随笔
1. 搭建React环境,运行React项目
2. Spring @PostConstruct 、@Autowired和Construct 顺序
3. Spring中的ApplicationListener的使用详解案例(观察者模式)
4. @SpringBootApplication的使用
5. 服务器连接
6. ffg
7. abe
8. abd
9. abc
10. Android之Activity的四种启动模式
最新评论
1. re: Android JSON的简单例子
评论内容较长,点击标题查看
--JSON.COM
2. re: androidpn(本文服务器为tomcat)
评论内容较长,点击标题查看
--Deepak Singh
阅读排行榜
1. androidpn(本文服务器为tomcat)(5198)
2. Web项目Spring+hibernate+Spring mvc简单的添删改查(4143)
3. 如何使用log4j打印日志并保存日志(3425)
4. HttpClient连接服务器(方法有很多,我只写HttpPost,接收数据,传输数据都为json形式)(3374)
5. 配置数据源(mysql)(3049)
评论排行榜
1. Android JSON的简单例子(1)
2. androidpn(本文服务器为tomcat)(1)
3. Runtime.getRuntime().addShutdownHook((0)
4. setDaemon(0)
5. PendingIntent(0)