在外部触摸时关闭弹出窗口

时间:2019-07-09 18:45:52

标签: java android-studio popup popupwindow

我正在尝试打开一个带有4个按钮的弹出窗口,当按下按钮或用户在弹出窗口之外单击时,该窗口将关闭。我只需要进行警报对话,但是只支持3个按钮。

关于同一件事有很多问题,我找不到任何一致的答案或任何对我有用的答案(包括已弃用的Bitmap Drawable)。我已经将我看到的所有建议都放入了我的代码中,但是没有用。

这是我到目前为止使用的所有内容:

//to create new popup window
LayoutInflater chooseMealInflater = (LayoutInflater) MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View chooseMealLayout = chooseMealInflater.inflate(R.layout.choose_meal_dialog, null);

PopupWindow chooseMealPopup = new PopupWindow(chooseMealLayout, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, true);


//to make popup dismiss on touch outside
chooseMealPopup.setOutsideTouchable(true);
chooseMealPopup.setFocusable(true);
chooseMealPopup.setContentView(chooseMealLayout);
chooseMealPopup.showAtLocation (chooseMealLayout, Gravity.CENTER,0,0);
chooseMealPopup.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

我试图找到所有可能的方法,例如将setFocusable保留在showAtLocation之前,但是当我运行该应用程序时,单击时什么也没有发生。认为这可能是我的代码中的个别内容,因为我是新手,并不真正知道自己在做什么。

1 个答案:

答案 0 :(得分:0)

不知道你真正想做什么...

如果要在单击按钮时显示对话框

YourBtn.setOnClickListener(new Button.OnClickListener() {
        @Override
        public void onClick(View v) {
            //what you want to do like show dialog

        }
    });