Em uma das opções do meu menu de contexto eu abro um AlertDialog customizado, até tudo ok, porém quando clico no botão de confirmação (positive button) ele não fecha o dialog, enquanto que o outro botão de cancelar (negative button) fecha o dialog normalmente.
Código do AlertDialog:
alterarNome.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
final FichaCadastralDoc doc = (FichaCadastralDoc) listaDocumentos.getItemAtPosition(info.position);
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(CriarFichaCadastralActivity.this);
LayoutInflater inflater = LayoutInflater.from(CriarFichaCadastralActivity.this);
final View dialogView = inflater.inflate(R.layout.dialognomedoc, null);
final EditText nomeDoc = (EditText) dialogView.findViewById(R.id.dialogdoc_edtNome);
alertDialog.setPositiveButton("Confirmar", null);
alertDialog.setNegativeButton("Cancelar", null);
alertDialog.setView(dialogView);
final AlertDialog dialog = alertDialog.create();
dialog.show();
dialog.getWindow().setBackgroundDrawableResource(R.drawable.dialogbackground);
TextView txtItem = (TextView) dialogView.findViewById(R.id.dialogdoc_txtItem);
TextView txtNumeroItem = (TextView) dialogView.findViewById(R.id.dialogdoc_txtNumeroItem);
txtNumeroItem.setText(String.valueOf(doc.getItem()));
nomeDoc.setText(doc.getNome());
nomeDoc.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (nomeDoc.getText().toString().equals("")) {
Toast.makeText(dialogView.getContext(), "Preencha o campo ou cancele a operação", Toast.LENGTH_SHORT).show();
} else {
doc.setNome(nomeDoc.getText().toString());
}
}
});
return false;
}
});