若是AlertDialog里有输入框,那么如何根据本身的须要关闭AlertDialog,网上有不少是经过反射方式。这里有另一种方法。服务器
Builder builder = new Builder(MainActivity.this);ide
builder.setTitle("服务器设置");ui
LayoutInflater inflater = LayoutInflater.from(this);this
final View view = inflater.inflate(R.layout.edit, null);spa
builder.setView(view);get
builder.setPositiveButton(R.string.ok, new AlertDialog.OnClickListener(){string
@Overrideit
public void onClick(DialogInterface dialog, int which) { ast
}List
});
builder.setNegativeButton(R.string.cancel, new AlertDialog.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
final AlertDialog dialog = builder.create();
//builder.show();
dialog.show();
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Boolean wantToCloseDialog = false;
//须要时修改wantToCloseDialog的值
if(wantToCloseDialog){
dialog.dismiss();
}else{
Toast.makeText(MainActivity.this, "服务器地址不符合规范", Toast.LENGTH_SHORT).show();
}
}
});