当你的应用需要显示一个进度条或需要用户对信息进行确认时,可以使用对话框来完成。
下面代码将打开一个如右图所示的对话框:
new AlertDialog.Builder(context)
.setTitle("java培训")
.setCancelable(false)//设置不能通过“后退”按钮关闭对话框
.setMessage("浏览传智播客网站?")
.setPositiveButton("确认",
newDialogInterface.OnClickListener(){
publicvoid onClick(DialogInterfacedialoginterface,inti){
Uri uri =Uri.parse("http://www.itcast.cn/");//打开链接
Intentintent = new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
}
})
.setNegativeButton("取消", newDialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
})
.show();//显示对话框
上面代码采用的是一个链式调用,像setTitle()、setMessage()这些方法,他们的返回值都是当前对话框对象。
创建带单选项列表的对话框
下面代码将打开一个如右上图所示的选项列表对话框:
final String[] items ={"java", ".net", "php"};
new AlertDialog.Builder(SenderNotificationActivity.this).setTitle("选择语言")
.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item],
Toast.LENGTH_SHORT).show();
}
}).show();//显示对话框
下面代码将打开一个如右下图所示的带单选框的列表对话框:
final String[] items ={"java", ".net", "php"};
new AlertDialog.Builder(SenderNotificationActivity.this).setTitle("选择语言")
.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item],
Toast.LENGTH_SHORT).show();
dialog.cancel();
}
}).show();//显示对话框
setSingleChoiceItems()的第二个参数是设置默认选项,
选项索引从0开始,-1代表不选择任何选项。
创建带多选项列表的对话框
下面代码将打开一个如右下图所示的多选项列表对话框:
final String[] items ={"java", ".net", "php"};
new AlertDialog.Builder(SenderNotificationActivity.this).setCancelable(false)
.setTitle("选择语言")
.setMultiChoiceItems(items, new boolean[]{false,true,false}, new DialogInterface.OnMultiChoiceClickListener() {
@Override
publicvoid onClick(DialogInterface dialog, int which, booleanisChecked) {
if(isChecked){
Toast.makeText(getApplicationContext(), items[which],
Toast.LENGTH_SHORT).show();
}
}
})
.setPositiveButton("确认",
newDialogInterface.OnClickListener(){
publicvoid onClick(DialogInterfacedialoginterface, inti){
dialoginterface.dismiss();
}
})
.show();//显示对话框
进度对话框(ProgressDialog)
ProgressDialog.STYLE_SPINNER 旋体进度条风格 (为默认风格)
ProgressDialog.STYLE_HORIZONTAL 横向进度条风格