【问题标题】:How to dismiss a Dialog?如何关闭对话框?
【发布时间】:2019-08-13 10:15:22
【问题描述】:

我在关闭对话框时遇到问题。
我有两种情况:
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();
        }
    });

所以问题是,当我点击 editText - softKeyboard 出现。
如果我在不点击 editText 的情况下插入存在,它可以正常工作。

【问题讨论】:

    标签: android dialog android-softkeyboard dismiss


    【解决方案1】:

    使用以下代码关闭对话框。首先检查显示对话框是否显示对话框,然后您可以关闭,否则可能是您的应用程序崩溃了。

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

    【讨论】:

    • 谢谢,我解决了。问题是,我不知道为什么,如果我点击editText,对话框将生成两次,所以我传递的第一个引用无效。
    猜你喜欢
    • 2011-02-25
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 2013-08-16
    相关资源
    最近更新 更多