1
所以我有一个菜单,当点击一个按钮时弹出。在该菜单中,用户可以输入可以是字符串的“赋值名称”,以及将会是数字的“等级”和“可用的最大点数”。 现在我想确保用户在任何这些EditText字段中都不输入任何内容或null
。那么有没有办法在输入有效输入之前禁用OK
按钮。以下是弹出窗口的图片。Android:在特定条件下禁用AlertDialogBuilder的确定按钮
下面是我在MainActivity
Button add = (Button)findViewById(R.id.addBtn);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
LayoutInflater li = LayoutInflater.from(context);
View promptsView = li.inflate(R.layout.add_individual_name, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
alertDialogBuilder.setView(promptsView);
final EditText assignmentName = (EditText) promptsView.findViewById(R.id.enteredIndividualName);
final EditText gradeReceived = (EditText) promptsView.findViewById(R.id.enteredUserGrade);
final EditText maxPoints = (EditText) promptsView.findViewById(R.id.enteredMaxPoints);
alertDialogBuilder.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
String name = assignmentName.getText().toString();
String grade = gradeReceived.getText().toString();
String totalPossible = maxPoints.getText().toString();
checkIfNameAlreadyExists(name);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
final AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}});
代码另外,我要禁用“确定”按钮,如果“作业名称”我的数据库已经存在。我有一个函数来检查项目是否在数据库中退出。
让我知道你是否想看到AlertDialog
或其他任何XML的代码。
感谢
感谢您的回答。但是我究竟在哪里放置了这段代码?如果我把它放在'alertDialogBuilder.setCancelable(false)'行之前,那么“OK”按钮就会消失,如果我把它放在那行之后,那么它就不起作用。 –
尝试把像我的答案代码块(在最终AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show();) –
这工作完美,因为我的预期。非常感谢你! –