Android对话框是作为Activity的一部分被创建和显示的,在程序中通过开发回调方法OnCreateDialog来完成对话框的创建,该方法需要传入代表对话框id参数。如果需要显示对话框,则调用showDialog方法传入对话框的id来显示指定的对话框。当对话框第一次被显示时,Android会调用onCreateDialog方法来创建对话框实例,之后将不再重复创建该实例。同时,每次对话框在被显示之前都会调用onPrepareDialog方法,如果不重写该方法,那么每次显示的对话框将会是最初创建的那个。关闭对话框可以调用Dialog类的dimiss方法来实现,但是要注意的是以这种方法关闭的对话框并不会彻底消失,Android会在后台保留其状态。如果需要让对话框在关闭之后彻底被清除,需要调用removeDialog方法并传入Dialog的id值来彻底释放对话框。如果需要在调用dimiss方法关闭对话框时执行一些特定的工作,则可以为对话框设置OnDismissListener并重写其中的onDismiss方法来开发特定的功能。
public class TestActivity extends Activity {
final int COMMON_DIALOG = 1; //普通对话框id
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button)findViewById(R.id.Button01); //获取Button对象
btn.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
showDialog(COMMON_DIALOG); //显示对话框
}
});
}
protected Dialog onCreateDialog(int id){ //重写onCreateDialog方法
Dialog dialog = null;
switch(id){ //对不同的对话框id值进行不同处理
case COMMON_DIALOG:
Builder b = new AlertDialog.Builder(this);
b.setIcon(R.drawable.header);
b.setTitle(R.string.title);
b.setMessage(R.string.dialog_msg);
b.setPositiveButton(R.string.ok,
new OnClickListener(){
public void onClick(DialogInterface dialog, int which){
EditText et = (EditText)findViewById(R.id.EditText01);
et.setText(R.string.dialog_msg);
}
});
dialog = b.create();
break;
default:
break;
}
return dialog;
}
}
当需要显示对话框时,Android自动根据showDialog方法传入的对话框id值调用onCreateDialog方法。
Android对话框
最新推荐文章于 2024-09-18 11:19:13 发布