Android AlertDialog

来源:互联网 发布:ubuntu精简版下载 编辑:程序博客网 时间:2024/06/05 23:17

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

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

                    db..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。

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

三、 示例

//////////////////////////////////////////////////////////////////////////////

023         /* 【简单提示对话框】 */
024         Button btn1 = (Button) findViewById(R.id.dialg_demo_btn01);
025         btn1.setOnClickListener(new OnClickListener()
026         {
027             public void onClick(View v)
028             {
029                 // TODO Auto-generated method stub
030                 new AlertDialog.Builder(dialog_demo.this).setTitle("简单提示对话框").setMessage("这是提示信息")
031                         .show();
032                 return;
033             }
034         });
035         // //////////////////////////////////////////////////////////////////////////////
036         /* 【带确定取消按钮的提示对话框】 */
037         Button btn2 = (Button) findViewById(R.id.dialg_demo_btn02);
038         btn2.setOnClickListener(new OnClickListener()
039         {
040             public void onClick(View v)
041             {
042                 // TODO Auto-generated method stub
043                 AlertDialog.Builder dialog02 = new AlertDialog.Builder(dialog_demo.this);
044                 dialog02.setTitle("带确定取消按钮的提示对话框");
045                 dialog02.setIcon(R.drawable.qq);
046                 dialog02.setMessage("这是提示内容");
047                 dialog02.setPositiveButton("确定", new DialogInterface.OnClickListener()
048                 {
049                     public void onClick(DialogInterface dialoginterface, int which)
050                     {
051                         Toast.makeText(dialog_demo.this, "你选择了确定", Toast.LENGTH_LONG).show();
052                     }
053                 });
054                 dialog02.setNegativeButton("取消", new DialogInterface.OnClickListener()
055                 {
056                     public void onClick(DialogInterface dialoginterface, int which)
057                     {
058                         Toast.makeText(dialog_demo.this, "你选择了取消", Toast.LENGTH_LONG).show();
059                     }
060                 });
061                 dialog02.create().show();
062                 return;
063             }
064         });
065         // //////////////////////////////////////////////////////////////////////////////
066         /* 【带多个按钮的提示对话框】 */
067         Button btn3 = (Button) findViewById(R.id.dialg_demo_btn03);
068         btn3.setOnClickListener(new OnClickListener()
069         {
070             public void onClick(View v)
071             {
072                 // TODO Auto-generated method stub
073                 AlertDialog.Builder dialog03 = new AlertDialog.Builder(dialog_demo.this);
074                 dialog03.setIcon(R.drawable.img1);
075                 dialog03.setTitle("带多个按钮的提示对话框");
076                 dialog03.setMessage("你最喜欢的球类运动是什么呢?");
077                 dialog03.setPositiveButton("篮球", new DialogInterface.OnClickListener()
078                 {
079                     public void onClick(DialogInterface dialoginterface, int which)
080                     {
081                         showDialog("篮球很不错");
082                     }
083                 });
084                 dialog03.setNeutralButton("乒乓球", new DialogInterface.OnClickListener()
085                 {
086                     public void onClick(DialogInterface dialoginterface, int which)
087                     {
088                         showDialog("乒乓球很不错");
089                     }
090                 });
091                 dialog03.setNegativeButton("足球", new DialogInterface.OnClickListener()
092                 {
093                     public void onClick(DialogInterface dialoginterface, int which)
094                     {
095                         showDialog("足球很不错");
096                     }
097                 });
098                 dialog03.create().show();
099                 return;
100             }
101         });
102         // //////////////////////////////////////////////////////////////////////////////
103         /*【单选按钮对话框】*/
104         Button btn4 = (Button) findViewById(R.id.dialg_demo_btn04);
105         btn4.setOnClickListener(new OnClickListener()
106         {
107             public void onClick(View v)
108             {
109                 // TODO Auto-generated method stub
110                 mSingleChoiceID = -1;
111                 AlertDialog.Builder dialog04 = new AlertDialog.Builder(dialog_demo.this);
112                 dialog04.setTitle("单选按妞");
113                 dialog04.setSingleChoiceItems(m_Items, 0, new DialogInterface.OnClickListener()
114                 {
115                     public void onClick(DialogInterface dialog, int whichButton)
116                     {
117                         mSingleChoiceID = whichButton;
118                         showDialog("你选择的id为" + whichButton + " , " + m_Items[whichButton]);
119                     }
120                 });
121                 dialog04.setPositiveButton("确定", new DialogInterface.OnClickListener()
122                 {
123                     public void onClick(DialogInterface dialog, int whichButton)
124                     {
125                         if (mSingleChoiceID > 0)
126                         {
127                             showDialog("你选择的是" + mSingleChoiceID);
128                         }
129                     }
130                 });
131                 dialog04.setNegativeButton("取消", new DialogInterface.OnClickListener()
132                 {
133                     public void onClick(DialogInterface dialog, int whichButton)
134                     {
135                              
136                     }
137                 });
138                 dialog04.create().show();
139                 return;
140             }
141         });
142         // //////////////////////////////////////////////////////////////////////////////
143         /*【多选按钮对话框】*/
144         Button btn5 = (Button) findViewById(R.id.dialg_demo_btn05);
145         btn5.setOnClickListener(new OnClickListener()
146         {
147             public void onClick(View v)
148             {
149                 // TODO Auto-generated method stub
150                 MultiChoiceID.clear();
151                 AlertDialog.Builder dialog05 = new AlertDialog.Builder(dialog_demo.this);
152                 dialog05.setTitle("多选按钮");
153                 dialog05.setMultiChoiceItems(m_Items, new boolean[]
154                 { false, false, false},
155                         new DialogInterface.OnMultiChoiceClickListener()
156                         {
157                             public void onClick(DialogInterface dialog, int whichButton,
158                                     boolean isChecked)
159                             {
160                                 if (isChecked)
161                                 {
162                                     MultiChoiceID.add(whichButton);
163                                     showDialog("你选择的id为" + whichButton + " , "
164                                             + m_Items[whichButton]);
165                                 } else
166                                 {
167                                     MultiChoiceID.remove(whichButton);
168                                 }
169  
170                             }
171                         });
172                 dialog05.create().show();
173                 return;
174             }
175         });
176         // //////////////////////////////////////////////////////////////////////////////
177         /*【列表框对话框】*/
178         Button btn6 = (Button) findViewById(R.id.dialg_demo_btn06);
179         btn6.setOnClickListener(new OnClickListener()
180         {
181             public void onClick(View v)
182             {
183                 // TODO Auto-generated method stub
184                 AlertDialog.Builder dialog06 = new AlertDialog.Builder(dialog_demo.this);
185                 dialog06.setTitle("列表框");
186                 dialog06.setItems(m_Items, new DialogInterface.OnClickListener()
187                 {
188                     public void onClick(DialogInterface dialog, int which)
189                     {
190                         // 点击后弹出窗口选择了第几项
191                         showDialog("你选择的id为" + which + " , " + m_Items[which]);
192                     }
193                 });
194                 dialog06.create().show();
195                 return;
196             }
197         });       
//////////////////////////////////////////////////////////////////////////////
199         /*【自定义登录对话框】*/
200         Button btn7 = (Button) findViewById(R.id.dialg_demo_btn07);
201         btn7.setOnClickListener(new OnClickListener()
202         {
203             public void onClick(View v)
204             {
205                 // TODO Auto-generated method stub
206                 LayoutInflater factory = LayoutInflater.from(dialog_demo.this);               
207                 final View view = factory.inflate(R.layout.dialog_demo_login, null);// 获得自定义对话框
208                  
209                 AlertDialog.Builder dialog07 = new AlertDialog.Builder(dialog_demo.this);
210                 dialog07.setIcon(R.drawable.qq);
211                 dialog07.setTitle("自定义登录对话框");
212                 dialog07.setView(view);// 引用自己定义的布局
213                 dialog07.setPositiveButton("确定", new DialogInterface.OnClickListener()
214                 {
215                     public void onClick(DialogInterface dialog, int whichButton)
216                     {
217  
218                         EditText userName = (EditText) view
219                                 .findViewById(R.id.dialog_demo_loginETUserName);
220                         EditText password = (EditText) view
221                                 .findViewById(R.id.dialog_demo_loginETPassWord);
222                         showDialog("姓名 :" + userName.getText().toString() + "密码:"
223                                 + password.getText().toString());
224                     }
225                 });
226                 dialog07.setNegativeButton("取消", new DialogInterface.OnClickListener()
227                 {
228                     public void onClick(DialogInterface dialog, int whichButton)
229                     {
230                         //Toast.makeText(dialog_demo.this, "你选择了取消", Toast.LENGTH_LONG).show();
231                         showDialog("你选择了取消");
232                     }
233                 });
234                 dialog07.create().show();
235                 return;
236             }
237         });
238         // //////////////////////////////////////////////////////////////////////////////
239         Button btn8 = (Button) findViewById(R.id.dialg_demo_btn08);
240         btn8.setOnClickListener(new OnClickListener()
241         {
242             public void onClick(View v)
243             {
244                 // TODO Auto-generated method stub
245                 mProgressDialog = new ProgressDialog(dialog_demo.this);//创建ProgressDialog对象
246                 mProgressDialog.setIcon(R.drawable.qq);// 设置ProgressDialog标题 图标
247                 mProgressDialog.setTitle("进度条窗口");// 设置ProgressDialog标题
248                 mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置进度条风格,风格为长形
249                 mProgressDialog.setMax(MAX_PROGRESS);// 设置ProgressDialo进度条进度
250                 mProgressDialog.setButton("确定", new DialogInterface.OnClickListener()
251                 {
252                     public void onClick(DialogInterface dialog, int whichButton)
253                     {
254                         // 这里添加点击后的逻辑
255                     }
256                 });
257                 mProgressDialog.setButton2("取消", new DialogInterface.OnClickListener()
258                 {
259                     public void onClick(DialogInterface dialog, int whichButton)
260                     {
261                         // 这里添加点击后的逻辑
262                     }
263                 });
264                 mProgressDialog.show();
265                 new Thread()
266                 {
267                     @Override
268                     public void run()
269                     {
270                         int Progress = 0;
271                         while (Progress < MAX_PROGRESS)
272                         {
273                             try
274                             {               
275                                 mProgressDialog.setProgress(Progress++); 
276                                 //mProgressDialog.incrementProgressBy(1);
277                                 Thread.sleep(100);
278                             } catch (Exception e)
279                             {
280                                 // TODO Auto-generated catch block
281                                 mProgressDialog.cancel();
282                                 //e.printStackTrace();
283                             }
284                         }   
285                     };
286                 }.start();
287                 return;
288             }
289         });
290         // //////////////////////////////////////////////////////////////////////////////
291         /*【圆形(转圈)进度条】*/
292         Button btn9 = (Button) findViewById(R.id.dialg_demo_btn09);
293         btn9.setOnClickListener(new OnClickListener()
294         {
295             public void onClick(View v)
296             {
297                 // TODO Auto-generated method stub
298                 mProgressDialog = new ProgressDialog(dialog_demo.this);//创建ProgressDialog对象
299                 mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); //设置进度条风格,风格为圆形,旋转的
300                 mProgressDialog.setTitle("读取ing...");// 设置ProgressDialog标题
301                 mProgressDialog.setMessage("正在读取中请稍候...");// 设置ProgressDialog提示信息
302                 mProgressDialog.setIndeterminate(true);//设置ProgressDialog 的进度条不明确
303                 mProgressDialog.setCancelable(true);// 设置ProgressDialog 可以按退回键取消
304                 mProgressDialog.setButton("确定", new DialogInterface.OnClickListener()
305                 {
306                     public void onClick(DialogInterface dialog, int whichButton)
307                     {
308                         // 这里添加点击后的逻辑
309                     }
310                 });
311                 mProgressDialog.show();// 让ProgressDialog显示
312                 return;
313             }
314         });
315         // //////////////////////////////////////////////////////////////////////////////
316         /*【带补充对话框】*/
317         Button btn10 = (Button) findViewById(R.id.dialg_demo_btn10);
318         btn10.setOnClickListener(new OnClickListener()
319         {
320             public void onClick(View v)
321             {
322                 // TODO Auto-generated method stub
323                 return;
324             }
325         });
原创粉丝点击