您的位置:首页 > 移动开发 > Android开发

Android AlertDialog总结

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

例如:AlertDialog.Builderdb=newBuilder(this);

db..create().show();

二、属性介绍

1AlertDialog.Builder属性

*setTitle:为对话框设置标题;

*setIcon:为对话框设置图标;

*setMessage:为对话框设置内容;

*setView:给对话框设置自定义样式;

*setItems:设置对话框要显示的一个list,一般用于显示几个命令时;

*setMultiChoiceItems:用来设置对话框显示一系列的复选框;

*setNeutralButton:响应中立行为的点击;

*setPositiveButton:响应Yes/Ok的点击;

*setNegativeButton:响应No/Cancel的点击;

*create:创建对话框;

*show:显示对话框;

2ProgressDialog属性

*setProgressStyle:设置进度条风格,风格为圆形,旋转的;

*setTitlt:设置ProgressDialog标题;

*setMessage:设置ProgressDialog提示信息;

*setIcon:设置ProgressDialog标题图标;

*setIndeterminate:设置ProgressDialog的进度条是否不明确;

*setCancelable:设置ProgressDialog是否可以按返回键取消;

*setButton:设置ProgressDialog的一个Button(需要监听Button事件);

*show:显示ProgressDialog。

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

三、示例

//////////////////////////////////////////////////////////////////////////////
023
/*【简单提示对话框】*/
024
Buttonbtn1=(Button)findViewById(R.id.dialg_demo_btn01);
025
btn1.setOnClickListener(newOnClickListener()
026
{
027
publicvoidonClick(Viewv)
028
{
029
//TODOAuto-generatedmethodstub
030
newAlertDialog.Builder(dialog_demo.this).setTitle("简单提示对话框").setMessage("这是提示信息")
031
.show();
032
return;
033
}
034
});
035
////////////////////////////////////////////////////////////////////////////////
036
/*【带确定取消按钮的提示对话框】*/
037
Buttonbtn2=(Button)findViewById(R.id.dialg_demo_btn02);
038
btn2.setOnClickListener(newOnClickListener()
039
{
040
publicvoidonClick(Viewv)
041
{
042
//TODOAuto-generatedmethodstub
043
AlertDialog.Builderdialog02=newAlertDialog.Builder(dialog_demo.this);
044
dialog02.setTitle("带确定取消按钮的提示对话框");
045
dialog02.setIcon(R.drawable.qq);
046
dialog02.setMessage("这是提示内容");
047
dialog02.setPositiveButton("确定",newDialogInterface.OnClickListener()
048
{
049
publicvoidonClick(DialogInterfacedialoginterface,intwhich)
050
{
051
Toast.makeText(dialog_demo.this,"你选择了确定",Toast.LENGTH_LONG).show();
052
}
053
});
054
dialog02.setNegativeButton("取消",newDialogInterface.OnClickListener()
055
{
056
publicvoidonClick(DialogInterfacedialoginterface,intwhich)
057
{
058
Toast.makeText(dialog_demo.this,"你选择了取消",Toast.LENGTH_LONG).show();
059
}
060
});
061
dialog02.create().show();
062
return;
063
}
064
});
065
////////////////////////////////////////////////////////////////////////////////
066
/*【带多个按钮的提示对话框】*/
067
Buttonbtn3=(Button)findViewById(R.id.dialg_demo_btn03);
068
btn3.setOnClickListener(newOnClickListener()
069
{
070
publicvoidonClick(Viewv)
071
{
072
//TODOAuto-generatedmethodstub
073
AlertDialog.Builderdialog03=newAlertDialog.Builder(dialog_demo.this);
074
dialog03.setIcon(R.drawable.img1);
075
dialog03.setTitle("带多个按钮的提示对话框");
076
dialog03.setMessage("你最喜欢的球类运动是什么呢?");
077
dialog03.setPositiveButton("篮球",newDialogInterface.OnClickListener()
078
{
079
publicvoidonClick(DialogInterfacedialoginterface,intwhich)
080
{
081
showDialog("篮球很不错");
082
}
083
});
084
dialog03.setNeutralButton("乒乓球",newDialogInterface.OnClickListener()
085
{
086
publicvoidonClick(DialogInterfacedialoginterface,intwhich)
087
{
088
showDialog("乒乓球很不错");
089
}
090
});
091
dialog03.setNegativeButton("足球",newDialogInterface.OnClickListener()
092
{
093
publicvoidonClick(DialogInterfacedialoginterface,intwhich)
094
{
095
showDialog("足球很不错");
096
}
097
});
098
dialog03.create().show();
099
return;
100
}
101
});
102
////////////////////////////////////////////////////////////////////////////////
103
/*【单选按钮对话框】*/
104
Buttonbtn4=(Button)findViewById(R.id.dialg_demo_btn04);
105
btn4.setOnClickListener(newOnClickListener()
106
{
107
publicvoidonClick(Viewv)
108
{
109
//TODOAuto-generatedmethodstub
110
mSingleChoiceID=-1;
111
AlertDialog.Builderdialog04=newAlertDialog.Builder(dialog_demo.this);
112
dialog04.setTitle("单选按妞");
113
dialog04.setSingleChoiceItems(m_Items,0,newDialogInterface.OnClickListener()
114
{
115
publicvoidonClick(DialogInterfacedialog,intwhichButton)
116
{
117
mSingleChoiceID=whichButton;
118
showDialog("你选择的id为"+whichButton+","+m_Items[whichButton]);
119
}
120
});
121
dialog04.setPositiveButton("确定",newDialogInterface.OnClickListener()
122
{
123
publicvoidonClick(DialogInterfacedialog,intwhichButton)
124
{
125
if(mSingleChoiceID>0)
126
{
127
showDialog("你选择的是"+mSingleChoiceID);
128
}
129
}
130
});
131
dialog04.setNegativeButton("取消",newDialogInterface.OnClickListener()
132
{
133
publicvoidonClick(DialogInterfacedialog,intwhichButton)
134
{
135
136
}
137
});
138
dialog04.create().show();
139
return;
140
}
141
});
142
////////////////////////////////////////////////////////////////////////////////
143
/*【多选按钮对话框】*/
144
Buttonbtn5=(Button)findViewById(R.id.dialg_demo_btn05);
145
btn5.setOnClickListener(newOnClickListener()
146
{
147
publicvoidonClick(Viewv)
148
{
149
//TODOAuto-generatedmethodstub
150
MultiChoiceID.clear();
151
AlertDialog.Builderdialog05=newAlertDialog.Builder(dialog_demo.this);
152
dialog05.setTitle("多选按钮");
153
dialog05.setMultiChoiceItems(m_Items,newboolean[]
154
{false,false,false},
155
newDialogInterface.OnMultiChoiceClickListener()
156
{
157
publicvoidonClick(DialogInterfacedialog,intwhichButton,
158
booleanisChecked)
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
Buttonbtn6=(Button)findViewById(R.id.dialg_demo_btn06);
179
btn6.setOnClickListener(newOnClickListener()
180
{
181
publicvoidonClick(Viewv)
182
{
183
//TODOAuto-generatedmethodstub
184
AlertDialog.Builderdialog06=newAlertDialog.Builder(dialog_demo.this);
185
dialog06.setTitle("列表框");
186
dialog06.setItems(m_Items,newDialogInterface.OnClickListener()
187
{
188
publicvoidonClick(DialogInterfacedialog,intwhich)
189
{
190
//点击后弹出窗口选择了第几项
191
showDialog("你选择的id为"+which+","+m_Items[which]);
192
}
193
});
194
dialog06.create().show();
195
return;
196
}
197
});
//////////////////////////////////////////////////////////////////////////////
199
/*【自定义登录对话框】*/
200
Buttonbtn7=(Button)findViewById(R.id.dialg_demo_btn07);
201
btn7.setOnClickListener(newOnClickListener()
202
{
203
publicvoidonClick(Viewv)
204
{
205
//TODOAuto-generatedmethodstub
206
LayoutInflaterfactory=LayoutInflater.from(dialog_demo.this);
207
finalViewview=factory.inflate(R.layout.dialog_demo_login,null);//获得自定义对话框
208
209
AlertDialog.Builderdialog07=newAlertDialog.Builder(dialog_demo.this);
210
dialog07.setIcon(R.drawable.qq);
211
dialog07.setTitle("自定义登录对话框");
212
dialog07.setView(view);//引用自己定义的布局

213
dialog07.setPositiveButton("确定",newDialogInterface.OnClickListener()
214
{
215
publicvoidonClick(DialogInterfacedialog,intwhichButton)
216
{
217
218
EditTextuserName=(EditText)view
219
.findViewById(R.id.dialog_demo_loginETUserName);
220
EditTextpassword=(EditText)view
221
.findViewById(R.id.dialog_demo_loginETPassWord);
222
showDialog("姓名:"+userName.getText().toString()+"密码:"
223
+password.getText().toString());
224
}
225
});
226
dialog07.setNegativeButton("取消",newDialogInterface.OnClickListener()
227
{
228
publicvoidonClick(DialogInterfacedialog,intwhichButton)
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
Buttonbtn8=(Button)findViewById(R.id.dialg_demo_btn08);
240
btn8.setOnClickListener(newOnClickListener()
241
{
242
publicvoidonClick(Viewv)
243
{
244
//TODOAuto-generatedmethodstub
245
mProgressDialog=newProgressDialog(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("确定",newDialogInterface.OnClickListener()
251
{
252
publicvoidonClick(DialogInterfacedialog,intwhichButton)
253
{
254
//这里添加点击后的逻辑
255
}
256
});
257
mProgressDialog.setButton2("取消",newDialogInterface.OnClickListener()
258
{
259
publicvoidonClick(DialogInterfacedialog,intwhichButton)
260
{
261
//这里添加点击后的逻辑
262
}
263
});
264
mProgressDialog.show();
265
newThread()
266
{
267
@Override
268
publicvoidrun()
269
{
270
intProgress=0;
271
while(Progress<MAX_PROGRESS)
272
{
273
try
274
{
275
mProgressDialog.setProgress(Progress++);
276
//mProgressDialog.incrementProgressBy(1);
277
Thread.sleep(100);
278
}catch(Exceptione)
279
{
280
//TODOAuto-generatedcatchblock
281
mProgressDialog.cancel();
282
//e.printStackTrace();
283
}
284
}
285
};
286
}.start();
287
return;
288
}
289
});
290
////////////////////////////////////////////////////////////////////////////////
291
/*【圆形(转圈)进度条】*/
292
Buttonbtn9=(Button)findViewById(R.id.dialg_demo_btn09);
293
btn9.setOnClickListener(newOnClickListener()
294
{
295
publicvoidonClick(Viewv)
296
{
297
//TODOAuto-generatedmethodstub
298
mProgressDialog=newProgressDialog(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("确定",newDialogInterface.OnClickListener()
305
{
306
publicvoidonClick(DialogInterfacedialog,intwhichButton)
307
{
308
//这里添加点击后的逻辑
309
}
310
});
311
mProgressDialog.show();//让ProgressDialog显示
312
return;
313
}
314
});
315
////////////////////////////////////////////////////////////////////////////////
316
/*【带补充对话框】*/
317
Buttonbtn10=(Button)findViewById(R.id.dialg_demo_btn10);
318
btn10.setOnClickListener(newOnClickListener()
319
{
320
publicvoidonClick(Viewv)
321
{
322
//TODOAuto-generatedmethodstub
323
return;
324
}
325
});
326
////////////////////////////////////////////////////////////////////////////////
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: