码迷,mamicode.com
首页 > 其他好文 > 详细

02对话框合集

时间:2015-10-05 23:18:16      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

对话框合集

一、确定对话框AlertDialog() 
1、AlertDialog的创建,Builder创建,类似工厂模式
2、Builder.show()底层
public AlertDialog show() {
AlertDialog dialog = create();
dialog.show();
return dialog;
}
3、核心代码:
public void click1(View view) {
Builder builder = new Builder(this);//类似工厂,用来创建AlertDialong的
builder.setTitle("您确定关机么?");
builder.setMessage("关机后果很严重");
// 1.确定按钮
builder.setPositiveButton("确定",new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "5秒钟后关机", 0).show();
}
});
// 2、取消按钮
builder.setNegativeButton("取消"new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
// 3、使用builder创建create()对话框并show()对话框
// AlertDialog alertDialog = builder.create();
// alertDialog.show();
builder.show();// 上面两句的简写
} 
4、结果
技术分享
二、单选对话框
1、AlertDialog.Builder builder = new Builder(this),这里的this,不能用getApplicationContext()
核心代码:
public void click2(View view) {
AlertDialog.Builder builder = new Builder(this);// 这里不能用getApplicationContext(),只能用this
builder.setTitle("请选择性别");
// builder.setMessage("不选择性别的默认为人妖。。。");//这句不能加上,否则显示不出来单选对话框
final String[] items = new String[] { "男""女""人妖" };
// 1、单选按钮
builder.setSingleChoiceItems(items, 2, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), "您选择了:" + items[which],
Toast.LENGTH_SHORT).show();
}
});
// 2、确定按钮
builder.setPositiveButton("确定"new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();// 关闭对话框
}
});
// 2、取消按钮
builder.setNegativeButton("取消"new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();// 关闭对话框
}
});
builder.show();
}
2、结果:
技术分享
三、多选对话框 
核心代码:

public void click3(View view) {
AlertDialog.Builder builder = new Builder(this);// 这里不能用getApplicationContext(),只能用this
builder.setTitle("您喜欢吃什么?");
// builder.setMessage("不选择就默认吃粑粑,hiahia!!!");//这句不能加上,否则显示不出来多选对话框
// 1、多选对话框
final CharSequence[] items = { "小米""大米""玉米""屎粑粑" };
boolean[] checkedItems = { falsefalsefalsefalsetrue };
builder.setMultiChoiceItems(items, checkedItems,new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,boolean isChecked) {
if (isChecked) {
Toast.makeText(getApplicationContext(), "您选择了:" + items[which],Toast.LENGTH_SHORT).show();
}
}
});
// 2、确定按钮
builder.setPositiveButton("确定"new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();// 关闭对话框
}
});
// 3、取消按钮
builder.setNegativeButton("取消"new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();// 关闭对话框
}
});
builder.show();
}
结果:
技术分享
四、进度对话框
1、ProgressDialog和ProgressBar是两个特殊的控件,可以在子线程中更新UI
/**
*TODO 4、没有数据的进度对话框
@param view
*/
public void click4(View view){
ProgressDialog pd = new ProgressDialog(this);// 不能用getApplicationContext()
pd.setTitle("提醒");
pd.setMessage("正在获取数据");
pd.show();
}
/**
*TODO 5、有数据的进度对话框
@param view
*/
public void click5(View view) {
final ProgressDialog pd = new ProgressDialog(this);// 不能用getApplicationContext()
pd.setTitle("提醒");
pd.setMessage("正在获取数据");
// pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);//默认的旋转体
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);// 水平方向的
pd.setMax(100);
pd.show();
// 在子线程更新ui,ProgressDialog和ProgressBar是两个特殊的控件,可以在子线程中更新UI
new Thread() {
@Override
public void run() {
super.run();
for (int i = 0; i < 100; i++) {
pd.setProgress(i + 1);
try {
Thread.sleep(200);
catch (InterruptedException e) {
e.printStackTrace();
}
}
pd.dismiss();
}
}.start();
}
结果:
技术分享
技术分享




02对话框合集

标签:

原文地址:http://www.cnblogs.com/linmbbest/p/4856459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!