一、AlertDialog简介:
AlertDialog的构造方法被声明为protected,所以不能直接使用new关键字来创建AlertDialog类的对象实例。要想创建AlertDialog对话框,需要使用Builder类,该类是AlertDialog类中定义的一个内嵌类。因此必须创建AlertDialog.Builder类的对象实例,然后再调用show()来显示对话框。
二、属性介绍
1 AlertDialog.Builder属性
* setTitle: 为对话框设置标题 ;
* setIcon : 为对话框设置图标;
* setMessage: 为对话框设置内容;
* setView :
* setItems: 设置对话框要显示的一个list,一般用于显示几个命令时;
* setMultiChoiceItems:用来设置对话框显示一系列的复选框;
* setNeutralButton : 响应中立行为的点击;
* setPositiveButton : 响应Yes/Ok的点击 ;
* setNegativeButton :响应No/Cancel的点击 ;
* create : 创建对话框 ;
* show : 显示对话框;
2 ProgressDialog属性
*setProgressStyle:
*setTitlt:
*setMessage:
*setIcon:
*setIndeterminate:
*setCancelable:
*setButton:
*show:
可以创建类型的对话框,如:带按钮、简单列表、单选列表、多选列表、水平进度或圆形对话框(默认是:圆形)、悬浮对话框和触摸任何位置都可以关闭的对话框等,也可以自定义对话框(下面有自定义登陆示例)。
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 });