第26讲 对话框AlertDialog的自定义实现

时间:2021-12-25 04:54:07

26讲对话框AlertDialog的自定义实现

比如我们在开发过长当中,要通过介绍系统发送的一个广播弹出一个dialog。但是dialog必需是基于activity才能呈现出来,如果没有activity的话,程序就会崩溃。所以我们可以写一个自定义的dialog,把它定义成一个activity。这样我们收到一条打开dialog的广播后,直接启动这个activity,程序正常运行~~

自定义dialog能让开发者做出自己五彩缤纷的Activity,而不用去使用系统枯燥的界面。

使用LayoutInflater把自定义的view放入AlertDialog当中进行显示。

public void test5(Viewview) {

AlertDialog.Builder builder = new AlertDialog.Builder(MainDialog.this);

LayoutInflater factory = LayoutInflater.from(this);

final View textEntryView = factory.inflate(R.layout.test, null);

builder.setIcon(R.drawable.icon);

builder.setTitle("自定义输入框");

builder.setView(textEntryView);

builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

EditText userName = (EditText) textEntryView.findViewById(R.id.etUserName);

EditText password = (EditText) textEntryView.findViewById(R.id.etPassWord);

showDialog("姓名 :"  + userName.getText().toString()  + "密码:" + password.getText().toString() );

}

});

builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {

}

});

builder.create().show();

}