AlertDialog和ProgressDialog的使用
AlertDialog 确认取消对话框
AlertDialog可以在当前页面弹出一个对话框,这个对话框置于所有界面元素之上,能够屏蔽掉和其他组件的交互能力
代码实现:
//拿到的AlertDialog对话框的创建器对象
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
dialogBuilder.setTitle("This is Dialog");
dialogBuilder.setMessage("Something important.");
dialogBuilder.setCancelable(false); //设置为false,则点击back键或者弹窗外区域,弹窗不消去
dialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener(){ //使用了匿名内部类
@override
public void onClick(DialogInterface dialog, int which){
//加入逻辑代码
//对话框消失的方法
dialog.dismiss();
}
}
);
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){ //使用了匿名内部类
@override
public void onClick(DialogInterface dialog, int which){
//加入逻辑代码
}
}
);
//使用对话框创建器来创建一个对话框对象
AlertDialog alertDialog = dialogBuilder.create();
//将对话框显示出来
alertDialog.show();
实现的效果图:
AlertDialog弹出取消确认框
AlertDialog 单选对话框
单选对话框实际上也是一个对话框,所以首先也需要拿到对话框创建器,而后设置单选框
代码如下:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("请选择性别");
//单选框中的内容
final String[] items = new String[]{"男", "女"};
/*
* items:指定单选框中的内容
* checkedItem:哪一个选项默认被选中,-1代表未有选项被选中
*/
//设置单选对话框
alert.setSingleChoiceItems(items, -1, new OnClickListener() {
/*
* which:用户所选的条目的下标
* dialog:触发这个方法的对话框
*/
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(AlertActivity.this, "您选择的是" + items[which], Toast.LENGTH_SHORT).show();
//对话框消失
dialog.dismiss();
}
});
//直接调用对话框创建器的show方法也可以显示出来对话框
alert.show();
实现效果如图:
AlertDialog 多选对话框
多选框类似于单选框
代码如下:
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("您觉着帅的人");
final String[] items = new String[]{"小生", "老生", "单生"};
final boolean[] checkedItems = new boolean[]{false, false, false, false};
//设置多选对话框
alert.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
/*
* dialog:该对话框对象
* which:用户点击的条目的下标
* isChecked:条目是否被选中
*/
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
checkedItems[which] = isChecked;
}
});
//设置一个确定按钮
alert.setPositiveButton("确定", new OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
//将对话框消失
dialog.dismiss();
}
});
alert.show();
实现效果如图:
ProgressDialog
此控件和AlertDialog相似,可以在界面上弹出一个对话框,屏蔽掉和其他控件的交互能力,但ProgressDialog会在对话框中显示一个进度条
代码实现:
ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.setTitle("This is ProgressDialog");
progressDialog.setMessage("Loading");
progressDialog.setCancelable(true);
progressDialog.show(); //将进度条显示出来
实现的效果图:
ProgressDialog弹出的进度条
当数据加载完成后必须要调用ProgressDialog的dismiss()
方法来关闭对话框,否则ProgressDialog将会一直存在
网友评论