1.AlertDialog点击时不自动消失
//在setPositiveButton和setNegativeButton根据自己的逻辑处理,大概代码如下
if(validate){//验证通过自动消失
setDialogDismissable(dialog, true);
}else{//验证没通过,不能消失
setDialogDismissable(dialog, false)
} void setDialogDismissable(DialogInterface dialog, boolean dismissable){
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, dismissable);
} catch (Exception e) {
e.printStackTrace();
}
}
2.AlertDialog显示(EditText)时,自动弹出软键盘代码如下
final EditText textEdit = new EditText(this); // Builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//TODO:builder.setTitle(""); // Dialog
AlertDialog dialog = builder.create();
dialog.setOnShowListener(new OnShowListener() { @Override
public void onShow(DialogInterface dialog) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(textEdit, InputMethodManager.SHOW_IMPLICIT);
}
}); dialog.show();
注意:上面代码是dialog.show(), 不是builder.show();