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

#android #dialog #android-softkeyboard #dismiss

#Android #диалоговое #android-программная клавиатура #закрыть

Вопрос:

У меня проблема с закрытием диалогового окна.
У меня есть два случая:
1. Вставьте присутствие без информации (поэтому программная клавиатура не отображается, когда я нажимаю на редактируемый текст).
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();
        }
    });
  

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

Ответ №1:

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

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

Комментарии:

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