由于AlertDialog类的构造方法被声明成protected方法,因此,不能直接使用new关键字来创建AlertDialog类的对象实例,只能用AlertDialog
。
Builder.show
或AlertDialog。Builder.create+
AlertDialog.show
方法显示对话框,或者使用activity的
showDialog(int id)方法创建并显示对话框
使用show方法显示对话框是异步的。也就是说,当调用AlertDialog。Builder.show或AlertDialog.show方法显示对话框后,show方法会立即返回,并且继续执行后面的代码。
AlertDialog。Builder.show实际上也是调用AlertDialog.show方法
public AlertDialog show() {
AlertDialog dialog=create();
dialog.show();
return dialog;
}
AlertDialog。Builder.show方式创建并显示对话框:new AlertDialog.Builder(this).setTitle()
.setPositiveButton()
.setNeutralButton(…, …)
.setNegativeButton().show()
Builder.create+AlertDialog.show方式创建并显示对话框:
AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).setTitle()
.setPositiveButton()
.setNeutralButton(…, …)
.setNegativeButton().create();
dialog.show();
showDialog(int id)方法创建并显示对话框:
首先在某个函数中(比如点击响应函数)中调用showDialog:button01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showDialog(dialogid);
}
});activity会回调onCreateDialog:
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
switch(id){
case xxx:buildDiagxxx(MainActivity.this);
}
return null;
}buildDiagxxx(Context context){
new AlertDialog.Builder(MainActivity.this).setTitle()
.setPositiveButton()
.setNeutralButton(…, …)
.setNegativeButton().create();
}