AlertDialog 빌더를 사용하여 다음과 같은 작은 유효성 검사를 작성한 사용자로부터 입력을받습니다. EditText가 비어 있으면 SnackBar를 표시하고 닫지 마십시오. 대화.EditText가 비어있는 경우 경고 대화 상자를 닫지 마십시오. - Android AlertDialog.Builder
사용자가 EditText를 비워두고 Positive 버튼을 누르면 Snackbar에서 메시지를 받고 대화 상자를 닫습니다.
View view = getLayoutInflater().inflate(R.layout.layout_dialog, null);
acceptUserInput = (EditText) mView.findViewById(R.id.acceptUserInput);
final AlertDialog alertDialog = new AlertDialog.Builder(context)
.setView(view)
.setCancelable(false)
.setPositiveButton("SAVE", null)
.setNegativeButton("CLOSE", null)
.create();
alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
Button buttonPositive = ((AlertDialog) dialog).getButton(DialogInterface.BUTTON_POSITIVE);
buttonPositive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String strUserInput = acceptUserInput.getText().toString().trim();
if(TextUtils.isEmpty(strUserInput)) {
Snackbar snackbar = Snackbar.make(mView, "Name field cannot be left blank", Snackbar.LENGTH_LONG);
snackbar.show();
return;
}
});
Button buttonNegative = ((AlertDialog) dialog).getButton(DialogInterface.BUTTON_NEGATIVE);
buttonNegative.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
alertDialog.dismiss();
}
});
}
});
r emove return; 긍정 버튼 –
에서 시도하십시오. 사용 : onShow() method.http : //stackoverflow.com/a/7636468/3960700 – Steve
@Sophie 업로드 된 내 답변을보십시오. 그것은 완벽하게 작동합니다. –