要防止AlertDialog的EditText接受空值,可以在AlertDialog的PositiveButton的点击事件中进行判断。以下是一个示例代码:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("输入信息");
// 创建一个EditText控件
final EditText editText = new EditText(context);
builder.setView(editText);
// 设置PositiveButton的点击事件
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String inputText = editText.getText().toString().trim();
// 判断输入的值是否为空
if (inputText.isEmpty()) {
// 如果为空,则提示用户重新输入
Toast.makeText(context, "输入不能为空", Toast.LENGTH_SHORT).show();
// 取消对话框的关闭
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);
} catch (Exception e) {
e.printStackTrace();
}
} else {
// 输入不为空,执行其他操作
// ...
// 关闭对话框
dialog.dismiss();
}
}
});
// 创建对话框并显示
AlertDialog alertDialog = builder.create();
alertDialog.show();
在代码中,我们创建了一个AlertDialog,并在PositiveButton的点击事件中进行判断。如果EditText的输入值为空,我们显示一个Toast提示用户重新输入,并且取消对话框的关闭。如果输入值不为空,我们执行其他操作,并关闭对话框。
注意:为了取消对话框的关闭,我们使用了反射来修改AlertDialog的内部状态。
上一篇:不相邻节点的左子右兄树最大节点和