Закрытие всплывающего окна на ощупь снаружи - PullRequest
1 голос
/ 09 июля 2019

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

Было много вопросов об этой же вещи, и я не могу найти ни одного последовательного ответа или ответа, который бы работал для меня(включая устаревшее растровое изображение).Я поместил все предложения, которые я видел в мой код, но безрезультатно.

Вот все, что я использовал до сих пор:

//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 голосов
/ 10 июля 2019

не знаю, что вы действительно хотите сделать ...

если вы хотите показать диалог при нажатии кнопки

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

        }
    });
...