일부 유효성 검사 (아래)를 수행하는 대화 상자가 있습니다. 문제는 토스트가 표시된 후에 대화가 닫히고, 내가 전화를 끊지 않고서입니다. 건배를 보여주고 오류를 수정하기 위해 대화 상자를 열어 두어야합니다.Android : 닫기를 호출하지 않고 대화를 닫습니다.
final EditText txtName = new EditText(this);
AlertDialog.Builder dlgAdd = new AlertDialog.Builder(this)
.setTitle(R.string.create_category)
.setMessage(R.string.name)
.setView(txtName)
.setPositiveButton(R.string.ok, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String newCatName = txtName.getText().toString().trim(); // Converts the value of getText to a string.
if (newCatName != null && newCatName .length() ==0)
{
Toast.makeText(ManageCategories.this, R.string.err_name_required, 3500).show();
} else {
try {
boolean alreadyExists = mDatabaseAdapter.getCategoryIDs(newCatName).length > 0;// ids of cats with this name
if(alreadyExists) {
Toast.makeText(ManageCategories.this, R.string.categoryAlreadyExists, 3500).show();
} else {
mDatabaseAdapter.addCategory(newCatName);
}
}catch(Exception ex){
Toast.makeText(ManageCategories.this, R.string.error+':'+ ex.getLocalizedMessage(), 3500).show();
}
}
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
dlgAdd.show();
이 해결 된 방법을 기억 하는가? 수락 된 답변은 도움이되지 않습니다. 정확한 페이지에서 읽을 수 있습니다. * 사용자가 AlertDialog.Builder로 생성 된 액션 버튼을 터치하면, 시스템이 대화 상자를 닫습니다. *에 따르면, onPositiveClick을 보여주는 대화 상자를 유지하십시오. – natario