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

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

0 голосов
/ 22 марта 2019

У меня проблема с закрытием диалога.
У меня есть два случая:
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 - появляется softKeyboard .
Если я вставлю информацию о присутствии без нажатия на editText , он будет работать без проблем.

1 Ответ

0 голосов
/ 22 марта 2019

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

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