GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

AlertDialog não fecha após o click

android
Tags: #<Tag:0x00007f310efcdca8>

#1

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;
    }
});

#2

tenta colocar dentro do onclick dialog.dismiss();