第26讲对话框AlertDialog的自定义实现
比如我们在开发过长当中,要通过介绍系统发送的一个广播弹出一个dialog。但是dialog必需是基于activity才能呈现出来,如果没有activity的话,程序就会崩溃。所以我们可以写一个自定义的dialog,把它定义成一个activity。这样我们收到一条打开dialog的广播后,直接启动这个activity,程序正常运行~~
自定义dialog能让开发者做出自己五彩缤纷的Activity,而不用去使用系统枯燥的界面。
使用LayoutInflater把自定义的view放入AlertDialog当中进行显示。
public void test5(Viewview) {
AlertDialog.Builderbuilder=newAlertDialog.Builder(MainDialog.this);
LayoutInflaterfactory=LayoutInflater.from(this);
finalViewtextEntryView=factory.inflate(R.layout.test,null);
builder.setIcon(R.drawable.icon);
builder.setTitle("自定义输入框");
builder.setView(textEntryView);
builder.setPositiveButton("确定",newDialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacedialog,intwhichButton){
EditTextuserName=(EditText)textEntryView.findViewById(R.id.etUserName);
EditTextpassword=(EditText)textEntryView.findViewById(R.id.etPassWord);
showDialog("姓名:"+userName.getText().toString()+"密码:"+password.getText().toString());
}
});
builder.setNegativeButton("取消",newDialogInterface.OnClickListener(){
publicvoidonClick(DialogInterfacedialog,intwhichButton){
}
});
builder.create().show();
}