终身学习,不断读书,以书为侣,是我们每个人不让自己的生命过早枯萎的唯一选择。为了让我们的生命之树常青,让我们今后的生活更加丰富多彩,朋友们,让我们一起来努力吧!
本讲内容:Dialog 对话框
一、Dialog介绍
Dialog也是Android中常用的用户界面元素,他同Menu一样也不是View的子类。让我们看一下它的继承关系:
DatePickerDialog,ProgressDialog,TimePickerDialog这三个我们在前面的章节已经讲过了
例一:当按返回按钮时弹出一个提示,来确保无误操作,采用常见的对话框样式。
下面是MainActivity.java主界面文件:
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
29
30
31
32
33
34
35
36
37
|
public
class
MainActivity
extends
Activity {
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
protected
void
dialog(){
// 定义对话框对象
AlertDialog.Builder builder =
new
Builder(MainActivity.
this
);
builder.setMessage(
"确认退出吗?"
);
builder.setTitle(
"提示"
);
builder.setPositiveButton(
"确认"
,
new
OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which) {
dialog.dismiss();
//关闭对话框
MainActivity.
this
.finish();
//退出
}
});
builder.setNegativeButton(
"取消"
,
new
OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which) {
dialog.dismiss();
}
});
builder.create().show();
显示对话框
}
//在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法
@Override
public
boolean
onKeyDown(
int
keyCode, KeyEvent event) {
if
(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() ==
0
) {
dialog();
}
return
false
;
}
}
|
下面是运行结果:
例二:改变了对话框的图表,添加了三个按钮
下面是MainActivity.java主界面文件:
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
29
30
31
32
33
34
35
36
37
|
public
class
MainActivity
extends
Activity{
private
Button b;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b=(Button) findViewById(R.id.button);
b.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View arg0) {
Dialog();
}
});
}
private
void
Dialog() {
Dialog dialog =
new
AlertDialog.Builder(
this
)
.setIcon(android.R.drawable.btn_star).setTitle(
"喜好调查"
)
.setMessage(
"你喜欢她吗?"
)
.setPositiveButton(
"很喜欢"
,
new
OnClickListener() {
@Override
public
void
onClick(DialogInterface arg0,
int
arg1) {
Toast.makeText(MainActivity.
this
,
"我很喜欢她。"
,Toast.LENGTH_LONG).show();
}
}).setNegativeButton(
"不喜欢"
,
new
OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which) {
Toast.makeText(MainActivity.
this
,
"我不喜欢她。"
,Toast.LENGTH_LONG).show();
}
}).setNeutralButton(
"一般"
,
new
OnClickListener() {
@Override
public
void
onClick(DialogInterface dialog,
int
which) {
Toast.makeText(MainActivity.
this
,
"谈不上喜欢不喜欢。"
,Toast.LENGTH_LONG).show();
}
}).create();
dialog.show();
}
}
|
下面是运行结果:
本讲就到这里,Take your time and enjoy it