若是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();
}
}
});