gpt4 book ai didi

android - PopUpWindow 后退键事件

转载 作者:搜寻专家 更新时间:2023-11-01 08:03:03 25 4
gpt4 key购买 nike

我看到很多关于这个主题的帖子,但找不到适合我的答案。

当我弹出弹出窗口时,我有一个 Activity 会变暗。后退按钮工作但只有我第二次按下它,第一次按下关闭弹出窗口但它不会取消 Activity ,因为我无法从弹出窗口捕获事件,第二次按下被 Activity 捕获,只有这样我才能取消调暗它。

这是我为实现这一目标所做的尝试:

    m_PopupWindow.setBackgroundDrawable(new BitmapDrawable());
m_PopupWindow.setOutsideTouchable(true);


View popUpWindowLaout = m_PopupWindow.getContentView();
popUpWindowLaout.setFocusableInTouchMode(true);


//first press doesnt get caught here
popUpWindowLaout.setOnKeyListener(new View.OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
m_ActionBar.show();
unShadeTheActivity();
m_PopupWindow.dismiss();
return true;
}
}
});

//这个函数会捕捉到第二次按下并且会起作用,但我希望第一次按下就可以。

@Override
public void onBackPressed() {
if (m_PopupWindow != null)
{
m_ActionBar.show();
unShadeTheActivity();
m_PopupWindow.dismiss();
}
else
{
super.onBackPressed();
}
}

最佳答案

改变

public void onBackPressed() {
if (m_PopupWindow != null)
{
m_ActionBar.show();
unShadeTheActivity();
m_PopupWindow.dismiss();
}
else
{
super.onBackPressed();
}
}

public void onBackPressed() {
super.onBackPressed();
if (m_PopupWindow != null)
{
m_ActionBar.show();
unShadeTheActivity();
m_PopupWindow.dismiss();
}
else
{
// rest of the code
// you can use finish,dismiss or call startActivity
// finish();

}

}

关于android - PopUpWindow 后退键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18310562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com