简述
网上有很多关于AlertDialog的讲解,但是很少能够特别清楚,所以打算自己写一个,自己写的也不一定清楚
这个方法中有一个内部类,这是一个编码技巧,如果我们要通过监听不同button的事件来返回一个boolean的话,直接使用Boolean是不可以的,只能通过一个boolean变量来表示,但是这个变量又必须是final类型的,因此我们通过内部类的方式,并且在内部类中创建一个boolean变量,这样就算flag内部类得到的对象是final类型我们也可以实现功能。
private boolean turn() {
class flag {
boolean flag = false;
}
final flag flag = new flag();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("真的退出?");
builder.setMessage("是否真的退出?");
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
login.this.finish();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.create().show();
return flag.flag;
}