I want to handle back press when pop up window is displayed. In some care I want to dismiss it and in some case I do not want to perform some task in pop up window.
When popup window is displayed, Activity onBackPress will not be called. Then how can in capture back press event when a pop up window is displayed?
You need to call setBackgroundDrawable()
on your PopupWindow
and set the background to a non null
. It sounds strange but if the background
isn't set to something on your PopupWindow
then it won't be able to detect events from the Activity
such as touching outside of the window or back button presses.
I had the same issue just a few days ago. I will try to find the SO answer where someone explains why this is so but it may take me a little bit. In the meantime, give it a try it should work.
Found it
I haven't had a chance to test it but you could try adding a keyEventListener
and doing something like this
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
// put your code here
}
and add setOutsideTouchable(true)
to your PopupWindow
object and calling update()
on it. If this doesn't work then you may have to just leave the back button disabled when the popup is showing and add your own Button
to the window. I haven't found anything else that will allow you to pick up events from the back button being pressed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With