02对话框合集

对话框合集

一、确定对话框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();
}
结果:





posted @ 2015-10-05 22:37  风起来时  阅读(195)  评论(0编辑  收藏  举报