AlertDialog.Builder的使用

本文详细介绍了如何在Android应用中创建不同类型的对话框(如提示对话框、带按钮对话框、列表对话框、单选对话框、多选对话框等),以及如何展示进度条并控制其行为。通过示例代码展示了自定义对话框的实现,并介绍了创建和显示不同类型的对话框的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、AlertDialog简介:AlertDialog的构造方法被声明为protected,所以不能直接使用new关键字来创建AlertDialog类的对象实例。要想创建AlertDialog对话框,需要使用Builder类,该类是AlertDialog类中定义的一个内嵌类。因此必须创建AlertDialog.Builder类的对象实例,然后再调用show()来显示对话框。

    例如:    AlertDialog.Builder builder= new Builder(this);

                    builder.create().show();

 二、属性介绍
1 AlertDialog.Builder属性 
* setTitle: 为对话框设置标题 ;
* setIcon : 为对话框设置图标;
* setMessage: 为对话框设置内容;
* setView :  给对话框设置自定义样式 ;
* setItems: 设置对话框要显示的一个list,一般用于显示几个命令时;
* setMultiChoiceItems:用来设置对话框显示一系列的复选框;
* setNeutralButton : 响应中立行为的点击;
* setPositiveButton : 响应Yes/Ok的点击 ;
* setNegativeButton :响应No/Cancel的点击 ;
* create : 创建对话框 ;
* show : 显示对话框;
2 ProgressDialog属性
*setProgressStyle:      设置进度条风格,风格为圆形,旋转的; 
*setTitlt:                          设置ProgressDialog 标题;
*setMessage:              设置ProgressDialog提示信息;
*setIcon:                         设置ProgressDialog标题图标;
*setIndeterminate:    设置ProgressDialog 的进度条是否不明确;
*setCancelable:         设置ProgressDialog 是否可以按返回键取消;
*setButton:              设置ProgressDialog 的一个Button(需要监听Button事件); 
*show:                     显示ProgressDialog。

可以创建类型的对话框,如:带按钮、简单列表、单选列表、多选列表、水平进度或圆形对话框(默认是:圆形)、悬浮对话框和触摸任何位置都可以关闭的对话框等,也可以自定义对话框(下面有自定义登陆示例)

<span style="white-space:pre">		</span>Button btn1 = (Button) findViewById(R.id.dialg_demo_btn01);
	         btn1.setOnClickListener(new OnClickListener()
	         {
	             public void onClick(View v)
	             {
	                 // TODO Auto-generated method stub
	                 new AlertDialog.Builder(dialog_demo.this).setTitle("简单提示对话框").setMessage("这是提示信息")
	                         .show();
	                 return;
	             }
	         });
	         // //////////////////////////////////////////////////////////////////////////////
	         
	         Button btn2 = (Button) findViewById(R.id.dialg_demo_btn02);
	         btn2.setOnClickListener(new OnClickListener()
	         {
	             public void onClick(View v)
	             {
	                 // TODO Auto-generated method stub
	                 AlertDialog.Builder dialog02 = new AlertDialog.Builder(dialog_demo.this);
	                 dialog02.setTitle("带确定取消按钮的提示对话框");
	                 dialog02.setIcon(R.drawable.qq);
	                 dialog02.setMessage("这是提示内容");
	                 dialog02.setPositiveButton("确定", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialoginterface, int which)
	                     {
	                         Toast.makeText(dialog_demo.this, "你选择了确定", Toast.LENGTH_LONG).show();
	                     }
	                 });
	                 dialog02.setNegativeButton("取消", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialoginterface, int which)
	                     {
	                         Toast.makeText(dialog_demo.this, "你选择了取消", Toast.LENGTH_LONG).show();
	                     }
	                 });
	                 dialog02.create().show();
	                 return;
	             }
	         });
	         // //////////////////////////////////////////////////////////////////////////////
	         
	         Button btn3 = (Button) findViewById(R.id.dialg_demo_btn03);
        <span style="white-space:pre">	</span> btn3.setOnClickListener(new OnClickListener()
	         {
	             public void onClick(View v)
	             {
	                 // TODO Auto-generated method stub
	                 AlertDialog.Builder dialog03 = new AlertDialog.Builder(dialog_demo.this);
	                 dialog03.setIcon(R.drawable.img1);
	                 dialog03.setTitle("带多个按钮的提示对话框");
	                 dialog03.setMessage("你最喜欢的球类运动是什么呢?");
	                 dialog03.setPositiveButton("篮球", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialoginterface, int which)
	                     {
	                         showDialog("篮球很不错");
	                     }
	                 });
	                 dialog03.setNeutralButton("乒乓球", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialoginterface, int which)
	                     {
	                         showDialog("乒乓球很不错");
	                     }
	                 });
	                 dialog03.setNegativeButton("足球", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialoginterface, int which)
	                     {
	                         showDialog("足球很不错");
	                     }
	                 });
	                 dialog03.create().show();
	                 return;
	             }
	         });
	         // //////////////////////////////////////////////////////////////////////////////
	         
	         Button btn4 = (Button) findViewById(R.id.dialg_demo_btn04);
	         btn4.setOnClickListener(new OnClickListener()
	         {
	             public void onClick(View v)
	             {
	                 // TODO Auto-generated method stub
	                 mSingleChoiceID = -1;
	                 AlertDialog.Builder dialog04 = new AlertDialog.Builder(dialog_demo.this);
	                 dialog04.setTitle("单选按妞");
	                 dialog04.setSingleChoiceItems(m_Items, 0, new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialog, int whichButton)
	                     {
	                         mSingleChoiceID = whichButton;
	                         showDialog("你选择的id为" + whichButton + " , " + m_Items[whichButton]);
	                     }
	                 });
	                 dialog04.setPositiveButton("确定", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialog, int whichButton)
	                     {
	                         if (mSingleChoiceID > 0)
	                         {
	                             showDialog("你选择的是" + mSingleChoiceID);
	                         }
	                     }
	                 });
	                 dialog04.setNegativeButton("取消", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialog, int whichButton)
	                     {
	                              
	                     }
	                 });
	                 dialog04.create().show();
	                 return;
	             }
	         });
	         // //////////////////////////////////////////////////////////////////////////////
	         
	         Button btn5 = (Button) findViewById(R.id.dialg_demo_btn05);
	         btn5.setOnClickListener(new OnClickListener()
	         {
	             public void onClick(View v)
	             {
	                 // TODO Auto-generated method stub
	                 MultiChoiceID.clear();
	                 AlertDialog.Builder dialog05 = new AlertDialog.Builder(dialog_demo.this);
	                 dialog05.setTitle("多选按钮");
	                 dialog05.setMultiChoiceItems(m_Items, new boolean[]
	                 { false, false, false},
	                         new DialogInterface.OnMultiChoiceClickListener()
	                         {
	                             public void onClick(DialogInterface dialog, int whichButton,
	                                     boolean isChecked)
	                             {
	                                 if (isChecked)
	                                 {
	                                     MultiChoiceID.add(whichButton);
	                                     showDialog("你选择的id为" + whichButton + " , "
	                                             + m_Items[whichButton]);
	                                 } else
	                                 {
	                                     MultiChoiceID.remove(whichButton);
	                                 }
	                             }
	                         });
	                 dialog05.create().show();
	                 return;
	             }
	         });
	         // //////////////////////////////////////////////////////////////////////////////	         
         <span style="white-space:pre">	</span>Button btn6 = (Button) findViewById(R.id.dialg_demo_btn06);
	         btn6.setOnClickListener(new OnClickListener()
	         {
	             public void onClick(View v)
	             {
	                 // TODO Auto-generated method stub
	                 AlertDialog.Builder dialog06 = new AlertDialog.Builder(dialog_demo.this);
	                 dialog06.setTitle("列表框");
	                 dialog06.setItems(m_Items, new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialog, int which)	                     {
	                         // 点击后弹出窗口选择了第几项
	                         showDialog("你选择的id为" + which + " , " + m_Items[which]);
	                     }
	                 });
	                 dialog06.create().show();
	                 return;
	             }
	         });       
//////////////////////////////////////////////////////////////////////////////
	         
	         Button btn7 = (Button) findViewById(R.id.dialg_demo_btn07);
	         btn7.setOnClickListener(new OnClickListener()
	         {
	             public void onClick(View v)
	             {
	                 // TODO Auto-generated method stub
	                 LayoutInflater factory = LayoutInflater.from(dialog_demo.this);               
	                 final View view = factory.inflate(R.layout.dialog_demo_login, null);// 获得自定义对话框
	                  
	                 AlertDialog.Builder dialog07 = new AlertDialog.Builder(dialog_demo.this);
	                 dialog07.setIcon(R.drawable.qq);
	                 dialog07.setTitle("自定义登录对话框");
	                 dialog07.setView(view);// 引用自己定义的布局
	                 dialog07.setPositiveButton("确定", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialog, int whichButton)
	                     {
	  
	                         EditText userName = (EditText) view
	                                 .findViewById(R.id.dialog_demo_loginETUserName);
	                         EditText password = (EditText) view
	                                 .findViewById(R.id.dialog_demo_loginETPassWord);
	                         showDialog("姓名 :" + userName.getText().toString() + "密码:"
	                                 + password.getText().toString());
	                     }
	                 });
	                 dialog07.setNegativeButton("取消", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialog, int whichButton)
	                     {
	                         //Toast.makeText(dialog_demo.this, "你选择了取消", Toast.LENGTH_LONG).show();
	                         showDialog("你选择了取消");
	                     }
	                 });
	                 dialog07.create().show();
	                 return;
	             }
	         });
	         // //////////////////////////////////////////////////////////////////////////////
	         Button btn8 = (Button) findViewById(R.id.dialg_demo_btn08);
	         btn8.setOnClickListener(new OnClickListener()
	         {
	             public void onClick(View v)
	             {
	                 // TODO Auto-generated method stub
	                 mProgressDialog = new ProgressDialog(dialog_demo.this);//创建ProgressDialog对象
	                 mProgressDialog.setIcon(R.drawable.qq);// 设置ProgressDialog标题 图标
	                 mProgressDialog.setTitle("进度条窗口");// 设置ProgressDialog标题
	                 mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置进度条风格,风格为长形
	                 mProgressDialog.setMax(MAX_PROGRESS);// 设置ProgressDialo进度条进度
	                 mProgressDialog.setButton("确定", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialog, int whichButton)
	                     {
	                         // 这里添加点击后的逻辑
	                     }
	                 });
	                 mProgressDialog.setButton2("取消", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialog, int whichButton)
	                     {
	                         // 这里添加点击后的逻辑
	                     }
	                 });
	                 mProgressDialog.show();
	                 new Thread()
	                 {
	                     @Override
	                     public void run()
	                     {
	                         int Progress = 0;
	                         while (Progress < MAX_PROGRESS)
	                         {
	                             try
	                             {               
	                                 mProgressDialog.setProgress(Progress++); 
	                                 //mProgressDialog.incrementProgressBy(1);
	                                 Thread.sleep(100);
	                             } catch (Exception e)
	                             {
	                                 // TODO Auto-generated catch block
	                                 mProgressDialog.cancel();
	                                 //e.printStackTrace();
	                             }
	                         }   
	                     };
	                 }.start();
	                 return;
	             }
	         });
	         // //////////////////////////////////////////////////////////////////////////////
	         Button btn9 = (Button) findViewById(R.id.dialg_demo_btn09);
	         btn9.setOnClickListener(new OnClickListener()
	         {
	             public void onClick(View v)
	             {
	                 // TODO Auto-generated method stub
	                 mProgressDialog = new ProgressDialog(dialog_demo.this);//创建ProgressDialog对象
	                 mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); //设置进度条风格,风格为圆形,旋转的
	                 mProgressDialog.setTitle("读取ing...");// 设置ProgressDialog标题
	                 mProgressDialog.setMessage("正在读取中请稍候...");// 设置ProgressDialog提示信息
	                 mProgressDialog.setIndeterminate(true);//设置ProgressDialog 的进度条不明确
	                 mProgressDialog.setCancelable(true);// 设置ProgressDialog 可以按退回键取消
	                 mProgressDialog.setButton("确定", new DialogInterface.OnClickListener()
	                 {
	                     public void onClick(DialogInterface dialog, int whichButton)
	                     {
	                         // 这里添加点击后的逻辑
	                     }
	                 });
	                 mProgressDialog.show();// 让ProgressDialog显示
	                 return;
	             }
	         });
	         // //////////////////////////////////////////////////////////////////////////////
	         
	         Button btn10 = (Button) findViewById(R.id.dialg_demo_btn10);
	         btn10.setOnClickListener(new OnClickListener()
	         {
	             public void onClick(View v)
	             {
	                 // TODO Auto-generated method stub
	                 return;
	             }
	         });


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值