AlertDialog
AlertDialog可以在当前页面弹出一个对话框,这个对话框是置顶于所有页面元素之上的,能够屏蔽掉其他控件的交互能力,因此AlertDialog一般都是用于提示一些非常重要的内容或者警告信息。比如为了防止用户误删重要内容,在删除前弹出一个确认对话框。
public class FirstActivity extends AppCompatActivity implements View.OnClickListener{
private Button button;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
button=(Button)findViewById(R.id.button_1);
button.ssetOnClickListener(this);
}
@Override
public void onClick(View v){
switch(v.getId())
{
case R.id.button_1:
AlertDialog.Builder dialog=new AlertDialog.Builder(FirstActivity.this);
dialog.setTitle("improtant message!");
dialog.setMessage("你是否要退出APP!");
dialog.setCancelable(false); //设置对话框是否可取消,默认值为true。
dialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.show();
break;
default:
break;
}
}
}
先用 AlertDialog.Builder创建一个 AlertDialog的实例,然后可以为这个对话框设置标题和内容,以及可否用Back键关闭对话框等属性—>setCancelable。然后调用setPositiveButton()方法为对话框设置确定按钮的点击事件,使用setNegativeButton()方法设置取消按钮的点击事件,最后通过show()方法将对话框显示出来。
ProgressDialog
ProgressDialog和AlertDialog类似,不同的是ProgressDialog会在对话框显示一个进度条,一般用于表示当前操作比较耗时,让用户等待,用法和AlertDialog类似。
@Override
public void onClick(View v){
switch(v.getId())
{
case R.id.button_1:
ProgressDialog progressDialog=new ProgressDialog(FirstActivity.this);
progressDialog.setTitle("important message!");
progressDialog.setMessage("Loading...........");
progressDialog.setCancelable(true);
progressDialog.show();
//progressDialog.dismiss();//取消对话框
break;
default:
break;
}
}