Как закрыть диалог?

У меня проблема с закрытием диалога.
У меня два случая:
1. Вставьте присутствие без информации (чтобы программная клавиатура не появлялась, когда я нажимаю на editText).
2. Вставьте присутствие с информацией.

private Dialog newPresenceUser;
newPresenceUser= new Dialog(activity);
ImageView addPresenceButton=(ImageView)itemView.findViewById(R.id.add_pres);
addPresenceButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            CardView send;
            final Spinner tipo;
            final EditText info;
            final ImageButton exit;

            newPresenceUser.setContentView(R.layout.new_presenza);
            exit=(ImageButton)newPresenceUser.findViewById(R.id.exit_event_button);
            tipo=(Spinner) newPresenceUser.findViewById(R.id.spinner_tipo);
            send=(CardView) newPresenceUser.findViewById(R.id.event_insert);
            info=(EditText)newPresenceUser.findViewById(R.id.info_presenza);
            exit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    newPresenceUser.dismiss();
                }
            });

            send.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    //newPresenceUser.cancel();
                    String infoAgg=info.getText().toString();

                    try {

                        new GestorePresenza().inserisciPresenza(activity,user,tipo.getSelectedItem().toString(),infoAgg,lstCont.get(i).getUid(),(View)viewGroup.getParent(),newPresenceUser);

                        newPresenceUser.dismiss();

                    } catch (ParseException e) {

                        e.printStackTrace();
                    }

                }
            });

            newPresenceUser.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

            newPresenceUser.show();
        }
    });

Итак, проблема в том, что когда я нажимаю на редактировать текст - появляется софтКлавиатура.
Если я вставляю присутствие без нажатия на редактировать текст, это работает без проблем.

1
0
47
1

Ответы 1

Используйте приведенный ниже код, чтобы закрыть диалоговое окно. Сначала проверьте диалоговое окно, показывающее, отображается ли диалоговое окно, затем вы можете закрыть его, иначе может быть, что ваше приложение потерпело крах.

  if (newPresenceUser!=null && 
        newPresenceUser.isShowing())
   {
          newPresenceUser.dismiss();
    }

Другие вопросы по теме